【Python开发】8. 文件操作
本文專欄:Python開發(fā)筆記 點(diǎn)擊查看系列文章
本文主要內(nèi)容:
- 1. 讀取文件
- 1.1 文件路徑
- 1.2 讀取整個(gè)文件
- 1.3 逐行讀取
- 2. 寫入文件
- 2.1 寫入空文件
- 2.2 寫入多行
- 2.3 內(nèi)容追加
1. 讀取文件
1.1 文件路徑
讀取文件使用的函數(shù)是 open() ,當(dāng)然要給函數(shù)指定 文件的位置,即 文件路徑 。
提供的路徑主要有兩種路徑
- 相對文件路徑:即相對于當(dāng)前運(yùn)行的程序所在的目錄。
- 絕對文件路徑:文件在計(jì)算機(jī)中的準(zhǔn)確位置。
如果在當(dāng)前運(yùn)行的程序HelloWorld.py的同級(jí)目錄下有一個(gè)名為file的文件夾,該文件夾下有一個(gè)名為data.txt的文件,那么這個(gè)文件路徑就可以定義為:
file_path = 'file/data.txt'當(dāng)然上面這個(gè)路徑定義,使用的是相對路徑。
如果使用絕對路徑,那么應(yīng)該這樣定義:
file_path = 'D:/PycharmProjects/學(xué)習(xí)階段/HelloWorld/file/data.txt'1.2 讀取整個(gè)文件
已知在上面定義的txt 文件中寫入了幾行數(shù)字,那么可以使用下面這樣的代碼讀取整個(gè)文件中的內(nèi)容:
file_path = 'file/data.txt' with open(file_path) as file_object:contents = file_object.read()print(contents)可以將所有的文本打印出來:
1024 2048 40961.3 逐行讀取
如果想逐行讀取文件,那么可以參考下面的示例:
示例:
lineNum = 1 file_path = 'file/data.txt' with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line)lineNum += 1示例輸出:
第1行:1024第2行:2048第3行:4096在上面這個(gè)示例中,可以看到每一行都多輸出了一個(gè)空行。這是因?yàn)閜rint語句加上一個(gè)換行符,文件的每一行也有一個(gè)換行符導(dǎo)致的。
可以使用 rstrip() 解決。
示例:
lineNum = 1 file_path = 'file/data.txt' with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line.rstrip()) # 這里加上rstrip()lineNum += 1示例輸出:
第1行:1024 第2行:2048 第3行:4096在以上的示例中,均采用for循環(huán),在讀取文件時(shí),即將文件逐行輸出。
其實(shí)還可以將文件中的每一行內(nèi)容,存儲(chǔ)在一個(gè)列表中,然后在使用的時(shí)候,直接使用列表。
示例:
lineNum = 1 file_path = 'file/data.txt' with open(file_path) as file_object:lines = file_object.readlines()# 然后通過列表讀取數(shù)據(jù) for line in lines:print('第' + str(lineNum) + '行:' + line.rstrip())lineNum += 1輸出結(jié)果同上。
2. 寫入文件
2.1 寫入空文件
寫入文件時(shí),依舊使用 open() 方法。
其實(shí)在 open() 方法中,除了文件路徑這個(gè)參數(shù)外,第二個(gè)參數(shù)是 文件的模式 。文件的模式主要有:
- ‘r’:讀取模式
- ‘w’:寫入模式
- ‘a(chǎn)’:附加模式
- 缺省:只讀模式
所以,寫入文件,只需要將 open() 方法的第二個(gè)實(shí)參寫為’w’即可。
注意:使用寫入模式打開文件時(shí),如果指定的文件不存在,則自動(dòng)創(chuàng)建。如果該文件已存在,則將清空該文件!!!
示例:
file_path = 'file/data2.txt' with open(file_path, 'w') as file_object:file_object.write('WUT')將上面的代碼運(yùn)行后,將新建一個(gè) data2.txt 的文件,并寫入數(shù)據(jù) WUT 。
注意:Python只能將字符串寫入文本文件。要將數(shù)值數(shù)據(jù)存儲(chǔ)到文本文件中,必須先使用函數(shù)str() 將其轉(zhuǎn)換為字符串格式。
2.2 寫入多行
多寫幾行write語句,即可寫入多行數(shù)據(jù)。
示例:
file_path = 'file/data2.txt' with open(file_path, 'w') as file_object:file_object.write('I love WUT')file_object.write('I love CST')上面這個(gè)示例將兩個(gè)句子寫入了data2.txt文件中。
這時(shí),打開data2.txt,看到數(shù)據(jù)是這樣的:
I love WUTI love CST其實(shí)想讓其單行顯示,只需要在每個(gè)寫入語句末尾加上換行符。
示例:
file_path = 'file/data2.txt' with open(file_path, 'w') as file_object:file_object.write('I love WUT\n')file_object.write('I love CST\n')這時(shí),打開data2.txt,看到數(shù)據(jù)是這樣的:
I love WUT I love CST這符合我們的預(yù)期。
2.3 內(nèi)容追加
看到這里,內(nèi)容追加也就很簡單了。
直接使用 附加模式 打開文件,即可進(jìn)行內(nèi)容的追加。
接著上面的data2.txt文件,這次以附加模式打開這個(gè)文件,然后再寫入幾行數(shù)據(jù):
file_path = 'file/data2.txt' with open(file_path, 'a') as file_object:file_object.write('Zhang San love WUT\n')file_object.write('Li Si love WUT,also\n')這時(shí),即可將上面的內(nèi)容追加到data2.txt文件中。
參考文獻(xiàn):
[1] Python編程:從入門到實(shí)踐
如果有幫助,感謝動(dòng)動(dòng)小手點(diǎn)個(gè)贊 (??????)???
總結(jié)
以上是生活随笔為你收集整理的【Python开发】8. 文件操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CAD.Net】第六课:图纸保存时候字
- 下一篇: websocket python爬虫_p