Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Patricia Arquetteasal
2024-11-17 03:00:03207semak imbas

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()

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"

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

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:
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