Rumah > Artikel > pembangunan bahagian belakang > Cara Membaca Fail Secara Rekursif dalam Folder Python dengan Berkesan
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!