Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh memanipulasi berbilang fail secara serentak dalam Python?

Bagaimanakah saya boleh memanipulasi berbilang fail secara serentak dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-16 06:51:03415semak imbas

How can I efficiently manipulate multiple files simultaneously in Python?

Manipulasi Fail Cekap dengan Python "dengan terbuka"

Mengakses berbilang fail secara serentak selalunya merupakan tugas kritikal dalam Python. Walaupun menggunakan berbilang pernyataan "dengan terbuka" boleh membosankan, Python menawarkan penyelesaian yang elegan untuk menggabungkan panggilan ini dengan pernyataan "dengan".

Pembukaan Fail Dalam Talian

Python versi 2.7 dan ke atas membenarkan pembukaan fail dalam talian, menghapuskan keperluan untuk berbilang pernyataan "dengan". Hanya asingkan takrifan fail dengan koma dalam kurungan:

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()

Pengurus Konteks Bersarang

Dalam versi Python yang terdahulu, contextlib.nested() boleh digunakan untuk pengurus konteks nest, tetapi ini tidak disyorkan untuk bekerja dengan berbilang fail.

ExitStack untuk Pembukaan Fail Dinamik

Dalam Python 3.3 dan seterusnya, contextlib.ExitStack menyediakan pilihan yang serba boleh untuk membuka bilangan fail yang berubah-ubah secara serentak:

with ExitStack() as stack:
    files = [stack.enter_context(open(fname)) for fname in filenames]
    # Do something with "files"

Pemprosesan Fail Berurutan

Bergantung pada kes penggunaan, pemprosesan fail berurutan mungkin lebih sesuai daripada membuka semua fail sekali gus:

for fname in filenames:
    with open(fname) as f:
        # Process f

Atas ialah kandungan terperinci Bagaimanakah saya boleh memanipulasi berbilang fail secara serentak dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn