Python-讀寫文件


一、文件有三種打開方式,分別為讀、寫、追加。默認讀方式打開

1、以讀方式打開,文件不存在時,會報錯

2、以寫方式打開,文件不存在時,會創建一個文件;文件存在時,會清空文件原有內容

3、以追加方式打開,可讀寫文件,但是游標當前位置為文件末尾

 

二、實現代碼

1、以“讀”方式打開文件

f = open('users.txt','r',encoding='utf-8') #如果文件不是uft-8編碼方式,讀取文件可能報錯
print(f.read()) #返回一個字符串,讀取文件所有內容
print(f.readlines()) #返回list,文件的每一行作為list的一個字符串元素
print(f.readline()) #讀取一行

 

2、以“寫”方式打開文件

f = open('users.txt', 'w') #清空文件內容再寫
f.write('aaa') #只能寫字符串
f.write('\n') f.writelines(['123','\n', 'bbb','\n']) #可寫所有能迭代的類型,例如list
f.writelines(('456','\n', 'ccc')) #例如tuple
f.close()

 

3、以“追加”方式打開文件

f = open('users.txt','a+') #可讀寫文件,文件不存在就創建一個文件
f.seek(0) #要先把游標放到文件開始處,否則f.read()為空
print(f.read()) #讀取整個文件內容
print('這里是分割線'.center(100, '-')) f.seek(0) for line in f: #高效率的讀取方式,每次只讀一行
    print(line) f.close()

 

4、以 'r+' 或 ‘w+’ 方式打開文件

f = open('users.txt','r+') #讀寫模式 r+,不會清空文件,但是寫入的內容會替換原有的內容,從文件起始位置進行替換
 f = open('users.txt','w+') #寫讀模式 w+,請求文件,光標在寫入文件的末尾

 

三、修改文件

1、第一種方式:讀取原有文件,修改內容,刪除原有數據,寫入修改后的內容

有時候發現write()之后,數據並沒有寫入文件,有可能是寫入數據量太小,緩存區還未滿,沒有寫入到磁盤。因此,加上函數f.flush(),強制將緩存區的數據寫入磁盤中

f = open('users.txt','a+') f.seek(0) #將游標指到起始位置
old = f.read() new = old[:4] + '12' f.seek(0) #讀取文件后,將游標重新指向起始位置
f.truncate()  #清空游標之后的所有內容
f.write(new) #寫入新數據
f.flush() #將緩存區的數據寫入硬盤
f.close()

 

2、第二種方式:創建一個新文件,保存修改后的內容,再重命名

import os with open('users.txt', 'r') as f, open('users_new.txt', 'w') as f1: #打開源文件並創建一個新文件
    old = f.read()  #讀取源文件
    new = old.replace('ef', '12') #修改文件內容
    f1.write(new)  #將修改后的內容寫入新文件
os.remove('users.txt')  #刪除原始文件
os.rename('users_new.txt', 'users.txt')  #將新文件重命名為原始文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM