小作業 9
阿新 • • 發佈:2018-12-21
1.有以上檔案record.txt,將此檔案三人對話每個人的內容單獨儲存一個檔案,並每個檔案中不包含對話人名
陳皓:沒寫完~
苗子瑾:第五個沒寫完
陳皓:第六個
陳皓:一遇到數學就蒙
苗子瑾:想想就頭疼
苗子瑾:等我回宿舍交作業吧……
周愉:看見那個綠色的燈了麼
周愉:全滅了我就到家了
陳皓:我家網路出門題了
陳皓:剛給聯通打完電話,效率問題~
陳皓:效率問題
苗子瑾:這個圖打不開
苗子瑾:這個圖
with open('record.txt', encoding='utf-8') as f: c = [] m = [] z = [] for i in range(1, 14): s= f.readline() l = s.split(':')# 以冒號分割 #print(l) l1 = l[1] # 索引值為 0 的是人名,索引值為 1 的是對話內容 if l[0] == '陳皓': #print(l[0]) c.append(l1) #print(c) if l[0] == '苗子瑾': m.append(l1) if l[0] == '周愉': z.append(l1) s1= ''.join(c) s2 = ''.join(m) s3 = ''.join(z) #print(s1,s2,s3) # 建立新的文字並寫入 with open('c', mode='w+', encoding='utf-8') as f1: f1.write(s1) with open('m', mode='w+', encoding='utf-8') as f2: f2.write(s2) with open('z', mode='w+', encoding='utf-8') as f3: f3.write(s3)
2.讀入使用者輸入的檔案的路徑和一個字串和行數,將檔案中的第n行行首插入使用者輸入的字串
def fun(): fpath = input('請輸入一個檔案路徑:') str = input('請輸入一個字串:') n = int(input('請輸入要插入的行數:')) l = [] # 定義一個空列表 with open(fpath,'r') as f: for i in f: l.append(i) # 把開啟的檔案存入列表中 #print(l) l.insert(n-1,str) # 要在第幾行插入字串 s = ''.join(l) with open(fpath,'w+') as f: f.write(s) # 把新的內容寫入檔案 try: fun() except Exception as e: print('輸入內容與提示不符!{}'.format(e))
3.下面只有一種方式不能開啟檔案,請嘗試,並說明原因?
01. f = open('E:/test.txt', 'w')
02. f = open('E:\test.txt', 'w') # 必須雙 \\ 或者前面加 r ,否則Python會將反斜槓作為轉義符
03. f = open('E://test.txt', 'w')
04. f = open('E:\\test.txt', 'w')
4.開啟一個檔案使用open()函式的時候,通過設定檔案的開啟方式,決定開啟的檔案具有哪些性質,請總結都有哪些方式,並說明區別
'r'->只讀 'w'->只寫,檔案已存在則清空,不存在則建立。 'a'->追加,寫到檔案末尾 'b'->二進位制模式,比如開啟影象、音訊、word檔案。 '+'->更新(可讀可寫) 'r+'不清空,不建立 預設是隻讀方式開啟檔案:open(file, mode=’r’)
5.如何將一個檔案物件f中的資料存放到列表中
# 第一種方式 (遍歷用append存入) with open('../text','r') as f: l = [] for i in f: l.append(i) print(l) # 第二種方式(用list函式) with open('../text','r') as f: l = list(f) print(l)
6.如果得到檔案物件f的每一行資料,嘗試使用多種方法
with open('../text','r') as f: n = f.readlines() #print(n[1]) l = [] for i in range(len(n)): l.append(n[i]) print(l)