文件讀取和操作
對文件的操作一般分為三種情況:打開文件,讀取文件(讀取)和關閉文件。再python中對文件的默認操作方法時open(),默認open()是打開文件並且是只讀模式。具體的操作如下:
- r:只讀模式
- w:只寫模式 【不可讀,不存在就新創建,已存在就清空內容替換】
- x:只寫模式 【不可讀,不存在就新創建,已存在就報錯】
- a:增加模式 【可讀,不存在就新創建,已存在就增加內容】
“+”表示可以同時讀寫某個文件:具體:
- r+:讀寫
- w+:寫讀
- x+:寫讀
- a+:寫讀
具體案例如下:
針對-----w:只寫模式 【不可讀,不存在就新創建,已存在就清空內容替換】
1、先查找文件是否存在
2、如果文件不存在,那么就先創建文件
f=open('log.txt','w') # 1、先查找log.txt文件是否存在,
f.write('hello sun') #2、如果不存在,就會新建一個log.txt文件,並將hello sun寫進文件中
f.close()
輸出結果:

3、如果文件存在,如果是w模式,那么就會將文件中原有的內容替換掉(將之前的內容刪掉,再寫新的內容進去);當然替換的過程我們是看不見的,只能看見結果。
這是我們再來用代碼實現一下(一樣的代碼再運行一下,只要改寫一下f.write(world)即可):
f=open('log.txt','w') #先查找log.txt文件是否存在,
f.write('world') #如果存在,就會直接將log.txt文件里面的hello sun替換成world
f.close()
輸出結果:

針對---a:增加模式 【可讀,不存在就新創建,已存在就增加內容】
f=open('log.txt','a',encoding='utf-8') #加入中文時,注意亂碼就加一個encoding='utf-8'
f.write(' 今天也要元氣滿滿') #空格加到第一行的后面
f.write('\n今天也要元氣滿滿') #加到下一行
f.close()
輸出結果:

針對---r:只讀模式(有以下三種方式)
(1)讀取文件所有的內容:
f=open('log.txt','r',encoding='utf-8') #亂碼就加一個encoding='utf-8'
print('讀取文件所有的內容:',f.read())
輸出結果:

(2)只讀取第一行的內容:
f=open('log.txt','r',encoding='utf-8') #亂碼就加一個encoding='utf-8'
print('讀取文件第一行的內容:',f.readline())
輸出的結果:

(3)讀取所有的內容:
f=open('log.txt','r',encoding='utf-8') #亂碼就加一個encoding='utf-8'
for item in f.readlines():
print(item.strip()) #strip()去掉空格
f.close()
輸出結果:
PS:with上下文,內部會進行文件的關閉處理,不需要擔心忘記close。
with open('log.txt','r',encoding='utf-8') as f:
print(f.read())
輸出結果:

