Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Membaca Fail Secara Rekursif dalam Folder Python dengan Berkesan

Cara Membaca Fail Secara Rekursif dalam Folder Python dengan Berkesan

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 14:38:30524semak imbas

How to Effectively Read Files Recursively in Python Folders

Python: Menangani Pembacaan Folder Rekursif

Sebagai seorang pemula yang menceburi Python, seseorang mungkin menghadapi cabaran membaca fail teks secara rekursif dalam folder hierarki. Coretan kod yang beredar dalam talian menangani isu ini, tetapi hadnya terletak pada ketidakupayaannya untuk menyelidiki melebihi satu folder. Panduan ini menyelidiki lebih mendalam fungsi os.walk Python dan memperkenalkan os.path.join untuk melintasi dan mengeluarkan kandungan struktur folder secara rekursif dengan berkesan.

Memahami os.walk

Mekanisme teras yang digunakan dalam kod yang disebutkan di atas ialah fungsi os.walk Python. Ia mengembalikan tiga nilai berbeza: akar, subdir dan fail. root mewakili direktori semasa sedang diperiksa, subdir menyenaraikan subdirektori dalam root dan fail menghitung fail bukan direktori yang terdapat dalam root.

Menangani Isu Gelung

Kod asal lelaran gelung goyah apabila cuba melintasi pelbagai peringkat folder. Untuk membetulkan perkara ini, ia harus diubah suai untuk menggelung subdirektori dan fail masing-masing dalam direktori akar semasa.

Memohon os.path.join

Isu ini timbul daripada penyatuan laluan fail yang tidak betul. os.path.join memastikan manipulasi laluan yang tepat dengan menggabungkan akar semasa dengan nama fail.

Kod Dipertingkat

Skrip Python yang diperhalusi menggabungkan peningkatan ini:

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

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    list_file_path = os.path.join(root, 'my-directory-list.txt')
    with open(list_file_path, 'wb') as list_file:
        for subdir in subdirs:
            list_file.write(('Subdirectory: {}\n'.format(subdir)).encode('utf-8'))
        for filename in files:
            file_path = os.path.join(root, filename)
            list_file.write(('File: {} (full path: {})\n'.format(filename, file_path)).encode('utf-8'))</code>

Menggunakan Penyata dengan

Penyataan dengan menawarkan cara yang mudah dan cekap untuk mengendalikan operasi fail dan memastikan pengurusan sumber yang betul. Ia menyelaraskan proses, memastikan fail ditutup secara automatik setelah selesai.

Kesimpulan

Panduan lanjutan ini menghuraikan masalah awal, memberikan pemahaman yang menyeluruh tentang os.walk dan os.path.join. Kod yang dipertingkatkan merangkumi konsep ini untuk bacaan folder rekursif yang cekap dan tepat, memperkasakan pengguna Python untuk melintasi struktur direktori yang kompleks dengan berkesan.

Atas ialah kandungan terperinci Cara Membaca Fail Secara Rekursif dalam Folder Python dengan Berkesan. 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