Rumah > pembangunan bahagian belakang > Tutorial Python > Bolehkah saya Gunakan \'dengan terbuka\' untuk Membuka Berbilang Fail Secara serentak dalam Python?

Bolehkah saya Gunakan \'dengan terbuka\' untuk Membuka Berbilang Fail Secara serentak dalam Python?

Patricia Arquette
Lepaskan: 2024-11-17 13:26:02
asal
471 orang telah melayarinya

Can I Use

Membuka Berbilang Fail Serentak Menggunakan "dengan terbuka" dalam Python

Dalam Python, pernyataan dengan terbuka menyediakan cara yang elegan untuk mengendalikan operasi fail dalam konteks berstruktur. Ini menghapuskan keperluan untuk membuka dan menutup fail secara eksplisit, memastikan sumber dikeluarkan dengan betul apabila sekatan tamat.

Namun, bagaimana jika anda perlu mengubah suai atau mengakses berbilang fail serentak? Soalan berikut meneroka senario ini:

Saya mahu mengubah suai berbilang fail serentak tetapi hanya jika saya berjaya menulis kepada semua fail. Bolehkah saya menggabungkan berbilang panggilan terbuka dalam pernyataan dengan?

Dalam Python versi 2.7 dan 3.1 dan seterusnya, jawapannya ialah ya.

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

Sintaks ringkas ini membolehkan anda membuka berbilang fail dalam pengurus konteks yang sama, membolehkan anda melakukan operasi pada kesemuanya secara serentak.

Untuk situasi di mana anda perlu membuka bilangan fail yang dinamik, Python 3.3 memperkenalkan penyelesaian yang lebih serba boleh, contextlib.ExitStack.

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

Pendekatan ini menawarkan fleksibiliti yang lebih besar, membolehkan anda membuka dan mengurus koleksi fail secara dinamik dalam satu blok konteks.

Sebagai alternatif, jika keperluan anda adalah untuk memproses fail secara berurutan, lebih pendekatan yang mudah adalah untuk mengulangi fail dan membukanya dalam setiap lelaran gelung:

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

Pendekatan berurutan ini mempunyai faedah kesederhanaan dan mungkin lebih sesuai apabila memproses sejumlah besar fail.

Atas ialah kandungan terperinci Bolehkah saya Gunakan \'dengan terbuka\' untuk Membuka 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