python讀取多個文件
㈠ python 多個文件怎麼調用
同時打開三個文件,文件行數一樣,要求實現每個文件依次讀取一行,然後輸出,我們先來看比較容易想到的寫法:
with open(filename1, 'rb') as fp1:
with open(filename2, 'rb') as fp2:
with open(filename3, 'rb') as fp3:
for i in fp1:
j = fp2.readline()
k = fp3.readline()
print(i, j, k)
注意這里只能對單個文件進行for循環讀取,不能寫成:
for i, j, k in fp1, fp2, fp3:
print(i, j, k)
但可使用強大的zip操作:
for i, j, k in zip(fp1, fp2, fp3):
print(i, j, k)
這樣層層的嵌套未免啰嗦,with結構支持一種更簡潔的寫法:
with open(filename1, 'rb') as fp1, open(filename2, 'rb') as fp2, open(filename3, 'rb') as fp3:
for i in fp1:
j = fp2.readline()
k = fp3.readline()
print(i, j, k)
或者使用更為優雅的寫法,此時需要contextlib語法糖:
from contextlib improt ExitStack
with ExitStack() as stack:
files = [stack.enter_context(open(fname)) for fname in [filename1, filename2, filename3]]
for i, j, k in zip(files[0], files[1], files[2]):
print(i, j, k)
㈡ Python文件讀寫
常見的讀寫操作:
Python內置了讀寫文件的函數,用法和C是兼容的。本節介紹內容大致有:文件的打開/關閉、文件對象、文件的讀寫等。僅示例介紹 TXT 類型文檔的讀寫,也就是最基礎的文件讀寫,也需要注意編碼問題;
open() close() with open(...) as ...
看以下示例就能了解 Python 的 open() 及 close() 函數。這邊調用 read()方法可以一次讀取文件的全部內容,Python把內容讀到內存,用一個str對象表示,具體使用參見下文。
在 E 盤 python_file 文件夾下新建一 a.txt,輸入隨意,如下:
Python 操作 打開及關閉方式 如下:
注意 open() 之後 一定要 close()。但由於文件讀寫時都可能產生IOError,為了保證無論是否出錯都能正確地關閉文件,我們用 try ... finally 來實現:
python 簡化了改寫法,即用 with open(...) as ... ; 建議之後文件讀寫都用該寫法:
上面,你肯定注意到了參數 "r";該參數決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。
相關參數:
File 對象
file 為一對象,它有一些內置屬性,如下
file對象的屬性:
read() read(size) readline() readlines()
之前的例子已經接觸到了 read() 函數,該函數會會一次性讀取文件的全部內容,如果能確保文件的大小,自然可以。但若文件過大,內存就爆了,所以,可以反復調用read(size)方法,每次最多讀取size個位元組的內容;也可調用 readline() 每次讀取一行內容;而調用readlines()可以一次讀取所有內容並按行返回list。總之,根據需求來。僅以 txt 文件為例,其他的文件讀取需要特殊處理;另外,文件的格式編碼方式也需要注意;這邊僅介紹讀取方法,其他的會出專題來學習。
在D:\python_file 下新建 poet.txt;示例如下,由於一個中文會佔多個位元組,故read(size) 部分會亂碼,如:
write()
寫文件和讀文件是一樣的,唯一區別是調用open()函數時,傳入標識符'w'或者'wb'表示寫文本文件或寫二進制文件;'a' 對應的表示追加等。
如下示例,由於 write.txt 文件不存在,創建該文件並寫入:
在上例基礎上,繼續,該文件被重寫:
繼續,這次使用追加,會在文件結尾追加:
https://blog.csdn.net/msspark/article/details/86745391
https://www.cnblogs.com/tianyiliang/p/8192703.html
https://www.cnblogs.com/camilla/p/7234657.html
https://blog.csdn.net/songlh1234/article/details/83316468
https://www.php.cn/python-tutorials-412484.html
https://blog.csdn.net/weay/article/details/80946152
https://blog.csdn.net/xc_zhou/article/details/81044836
㈢ python如何從一個文件夾中讀取多個.dat文件
用glob模塊,指定後綴.dat,即可。
importglob
dir='homeyour_data_file'
forfinglob.glob(dir+'*.dat'):
contents=open(f,'r').read()
㈣ python同時讀寫多個文件暨大型json文件讀取方法
最近處理NLP數據集時,需要一邊讀json文件,一邊向自己創建的txt寫入提取出的對話數據集,即同時讀寫多個文件,本來記得以前在哪看過這波操作的,但時間有點久了,忘了。
又由於新換了mac,win上原有的梯子掛了,這就很離譜,因此也沒法谷歌,只能用網路湊合著查了一番,看看有沒有大佬記錄了這個小tip。但是很遺憾,網上找到的方法都很撈,簡直是海底撈,沒辦法。好在腦子里還有點印象,修修改改總算寫出來了,在此做個記錄,同時也開源方便一下諸位道友。
你是不是覺得我很撈,很菜,連個文件讀寫都不會~
那麼,對不起,諸位,現在,我要起飛了,你以為你是第二層,我是第一層,實際上,我在第五層,且看我寫給你看~
最後,如果有道友對俺的開放域對話數據集感興趣,這個其實也是開源的
數據集鏈接
㈤ Python讀取文件內容的方法有幾種
filename=open('i:\\install\\test.txt','r+')#讀取xx路徑xx文件;r+代表的是讀寫並存方式 print filename.read()#讀取所有的文件