Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membaca Kandungan Folder secara Rekursif dalam Python Menggunakan Fungsi os.walk()?

Bagaimana untuk Membaca Kandungan Folder secara Rekursif dalam Python Menggunakan Fungsi os.walk()?

Susan Sarandon
Susan Sarandonasal
2024-10-18 14:42:301068semak imbas

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

Membaca Kandungan Folder Secara Rekursif dalam Python

Dalam Python, anda boleh menghadapi masalah apabila cuba melintasi direktori secara rekursif untuk membaca fail teks. Masalah biasa ialah kod yang berfungsi hanya untuk satu tahap direktori.

Memahami Fungsi os.walk

Inti traversal folder rekursif dalam Python terletak pada os fungsi .walk(). Ia melelar ke atas direktori tertentu dan subdirektorinya, mengembalikan tiga nilai: akar, subdir dan fail.

  • root : Direktori semasa sedang diproses.
  • subdir : Direktori dalam semasa direktori.
  • fail : Fail (bukan direktori) dalam direktori semasa.

Mengoptimumkan Traversal Folder

Untuk melintasi direktori secara rekursif, anda harus berulang melalui senarai subdirektori yang dikembalikan oleh os.walk(). Untuk setiap subdirektori, anda kemudiannya boleh memanggil os.walk() secara rekursif untuk memproses kandungannya.

Kod Python Diperbaiki

Kod contoh boleh diubah suai untuk mengendalikan berbilang direktori tahap:

<code class="python">import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    for subdir in subdirs:
        # Process subdirectory: call os.walk() recursively for subdir
        for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
            # Process subdirectories and files in subdirectory</code>

Amalan Terbaik Tambahan

  • Gunakan os.path.join() untuk penggabungan laluan dan bukannya manipulasi rentetan manual.
  • Pertimbangkan untuk menukar argumen skrip kepada laluan mutlak menggunakan os.path.abspath() untuk kestabilan.
  • Gunakan pernyataan with untuk memudahkan pengendalian fail dan memastikan pembersihan automatik.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Kandungan Folder secara Rekursif dalam Python Menggunakan Fungsi os.walk()?. 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