Pernyataan "dengan terbuka" Python ialah cara yang mudah untuk membuka dan bekerja dengan fail dalam pengurus konteks . Walau bagaimanapun, secara lalai, ia hanya membenarkan membuka satu fail pada satu masa. Tetapi bagaimana jika anda ingin mengubah suai atau membaca daripada berbilang fail secara serentak?
Jawapan Ringkas: Sejak Python 2.7 atau 3.1, anda boleh senaraikan berbilang pernyataan "dengan terbuka" tanpa kata kunci "dan":
with open('a', 'w') as a, open('b', 'w') as b: # Perform actions on file handles 'a' and 'b'
Dalam versi Python terdahulu, anda boleh menggunakan "contextlib.nested() " kaedah untuk menempatkan pengurus konteks. Walau bagaimanapun, pendekatan ini tidak disyorkan untuk membuka berbilang fail.
Untuk situasi di mana anda perlu membuka bilangan fail yang berubah-ubah sekaligus, Python 3.3 memperkenalkan "contextlib.ExitStack "pengurus konteks. Ini membolehkan anda menambah berbilang objek fail pada tindanan dan keluar dalam susunan yang betul:
import contextlib with contextlib.ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # Work with 'files' here
Perlu diingat bahawa, dalam kebanyakan kes, ia lebih cekap dan idiomatik untuk memproses fail secara berurutan. Sebagai contoh, anda boleh menggunakan gelung untuk membuka dan bekerja dengan setiap fail secara individu:
for fname in filenames: with open(fname) as f: # Process file 'f' here
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Membuka Berbilang Fail Secara serentak Menggunakan Pernyataan \'dengan terbuka\' Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!