讀取文件前我們需要知道一點(diǎn),現(xiàn)在的系統(tǒng)都不允許程序直接操作磁盤。
所以?。?!
不管是讀取還是寫入文件都是要通過(guò)系統(tǒng)提供的接口來(lái)完成?。。。。ython已經(jīng)把這些接口封裝了起來(lái),我們直接調(diào)用就行。
讀取一個(gè)txt文件:
txt = open("路徑文件名",“讀寫方式”,encoding=“字符編碼”,errors=“編碼出錯(cuò)處理方式”)
例:
txt =open('G:\\file.txt', 'r')
print(txt)
txt.close()
注:字符編碼以后的參數(shù)在讀取某些不規(guī)范的編碼文件中使用,一般正規(guī)編碼可以不寫
讀出方式:
r???????????? 只讀方式打開文件。指針將會(huì)放在文件的開頭
rb????????????以二進(jìn)制格式打開文件,指針將在文件的開頭位置。
r+????????????打開一個(gè)文件用于讀寫,指針放在文件的開頭。
rb+????????????以二進(jìn)制格式打開一個(gè)文件用于讀寫,指針放在文件的開頭。
避免讀取文發(fā)送錯(cuò)誤時(shí)確保關(guān)閉文件可以使用 try:打開文件操作? finally:文件對(duì)象.close()?;蛘?引入python的 with 語(yǔ)句自動(dòng)判斷
with? open('G:\\file.txt', 'r') as txt:?
?????print(txt.read())
讀取方式:
read()? ? ? ? ????????一次性讀取全部?jī)?nèi)容
read(size)? ? 一次性讀取size個(gè)字節(jié)內(nèi)容
redlin? ? ? ? ? ? ? ? 一次性讀取一行內(nèi)容
readlines? ? ????????一次性讀取所有內(nèi)容并按行返回list
寫文件和讀文件是一樣的,唯一的區(qū)別就是調(diào)用ope函數(shù)時(shí)傳入的讀寫方式不一樣
寫入方式:
w????????????????????????打開一個(gè)文件寫入,如果文件已存在則將其覆蓋,如果文件不存在,創(chuàng)建新文件。
wb? ? ? ? ? ? ? ? ? ? ? 以二進(jìn)制格式打開一個(gè)文件寫入,如果文件已存在則將其覆蓋,如果文件不存在,創(chuàng)建新文件。
w+? ? ? ? ? ? ? ? ? ? ? 打開一個(gè)文件用于讀寫。如果文件已存在則將其覆蓋,如果文件不存在,創(chuàng)建新文件。
wb+????????????????????以二進(jìn)制格式打開一個(gè)文件用于讀寫,如果文件已存在則將其覆蓋,如果文件不存在,創(chuàng)建新文件。
a????????????????????????打開一個(gè)文件追加,指針放在文件的結(jié)尾,如果文件不存在,創(chuàng)建新文件進(jìn)行寫入。
ab? ? ? ? ? ? ? ? ? ? ? ?以二進(jìn)制格式打開一個(gè)文件追加,文件指針放在文件的結(jié)尾,如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
a+? ? ? ? ? ? ? ? ? ? ? 打開一個(gè)文件讀寫,指針將會(huì)放在文件的結(jié)尾,如果該文件不存在,創(chuàng)建新文件用于讀寫。
ab+????????????????????以二進(jìn)制格式打開一個(gè)文件追加,指針將會(huì)放在文件的結(jié)尾,如果該文件不存在,創(chuàng)建新文件用于讀寫。