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
Lepaskan: 2024-11-16 06:51:03
asal
393 orang telah melayarinya

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()
Salin selepas log masuk

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"
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan