Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk cekap mengubah suai berbilang fail dalam Python menggunakan pernyataan \'dengan terbuka\'?

Bagaimana untuk cekap mengubah suai berbilang fail dalam Python menggunakan pernyataan \'dengan terbuka\'?

Patricia Arquette
Lepaskan: 2024-11-17 03:00:03
asal
303 orang telah melayarinya

How to efficiently modify multiple files in Python using the

Membuka Berbilang Fail dengan Pernyataan "dengan terbuka" dalam Python

Mengubah suai berbilang fail secara serentak menimbulkan persoalan bagaimana untuk melaksanakan operasi ini dengan cekap sambil mengekalkan integriti fail. Menggunakan pernyataan "dengan terbuka" bersama-sama pengurusan konteks menawarkan penyelesaian praktikal.

Menggunakan "dengan terbuka" dengan Berbilang Fail

Dalam Python versi 2.7 dan ke atas, sintaks telah disemak untuk membenarkan berbilang bukaan fail dalam satu pernyataan "dengan terbuka":

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()
Salin selepas log masuk

Ini menghapuskan keperluan untuk pernyataan "dengan" bersarang atau penggunaan "contextlib.nested()."

Pendekatan Alternatif

Dalam keadaan yang jarang berlaku di mana bilangan fail yang akan dibuka berubah-ubah, "contextlib.ExitStack" menawarkan penyelesaian fleksibel yang tersedia dalam Python 3.3 dan kemudian:

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

Walau bagaimanapun, pemprosesan fail berurutan selalunya lebih sesuai, terutamanya apabila berurusan dengan bilangan fail yang berubah-ubah:

for fname in filenames:
    with open(fname) as f:
        # Process f
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk cekap mengubah suai berbilang fail dalam Python menggunakan pernyataan \'dengan terbuka\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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