1. 程式人生 > >小作業 9

小作業 9

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)