Pernyataan Masalah
Skrip Python menghadapi masalah semasa mencari subfolder secara rekursif untuk fail dengan sambungan tertentu. Skrip bertujuan untuk mencipta senarai fail yang ditemui, tetapi subfolder yang diambil oleh skrip berada dalam senarai dan bukannya mewakili folder yang mengandungi fail yang terletak.
Penyelesaian
Untuk menyelesaikan isu ini, dirpath, yang diwakili oleh pembolehubah "root" dalam kod yang disediakan, harus digunakan dan bukannya pembolehubah subFolder. Dirpath mengandungi laluan mutlak direktori di mana fail terletak berada.
Coretan Kod
Kod Python yang disemak berikut menunjukkan penggunaan dirpath yang betul:
<code class="python">import os result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']</code>
Dengan menggunakan pengubahsuaian ini, kod akan melintasi subfolder secara rekursif dengan berkesan dan mencipta senarai fail dengan sambungan yang diingini, dengan setiap laluan fail termasuk folder yang dimilikinya.
Pilihan Tambahan
Sebagai tambahan kepada penyelesaian utama, pendekatan alternatif menggunakan modul glob atau modul pathlib terbina dalam Python untuk Python 3.4 dan ke atas juga disediakan untuk menawarkan rangkaian pilihan yang lebih komprehensif.
Kesimpulan
Skrip yang diubah suai ini dengan tepat mengenal pasti dan menyenaraikan fail dengan sambungan yang ditentukan dalam folder tertentu dan subfoldernya, menyediakan penyelesaian yang mantap untuk carian fail rekursif dalam Python.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Fail daripada Subfolder Secara Rekursif dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!