Python基礎 使用with結構開啟多個檔案

2021-09-30 16:38:21 字數 1311 閱讀 7388

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

考慮如下的案例:

同時開啟三個檔案,檔案行數一樣,要求實現每個檔案依次讀取一行,然後輸出,我們先來看比較容易想到的寫法:

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 exitstackwith 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)
給我老師的人工智慧教程打call!

Python包subprocess測試結果

在python3 中官方建議使用subprocess代替舊的os 和 command 包。之前一直在用subprocess.popen 來執行shell命令,但這個命令很複雜。這次在複習的過程中,看到說subprocess 中的call check call getstatusoutput等方法是對...

python專案開發心 python專案結構

標準的python專案結構 專案結構要注意下面的點 note a.不要過深,也不要過平。b.關於單元測試應該注意下面亮點 1.單元測試要包含在軟體的子一級目錄中,不要將單元測試放在包目錄外面。2.避免被setuptools 或者其他打包的庫 作為tests頂層模組自動安裝。3.可以被安裝,而且其他包...

python語句結構 python學習之結構語句

一 迴圈語句 1.1 for x in rang n rang n 生成左閉右開區間的序列 1.2 while x 條件n 二條件語句 if 條件表示式 elif 表示式 elif 表示式 else 三 break continu 四 函式 4.1 定義 def func 引數列表 if not i...