1. 程式人生 > >Python-讀寫文件

Python-讀寫文件

取整 寫文件 r+ rem 字符串 返回 光標 clas see

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

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)  #將新文件重命名為原始文件

Python-讀寫文件