Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menggunakan `os.walk()` untuk mencipta penyenaraian direktori berstruktur dengan penunjuk kedalaman dalam Python?

Bagaimanakah saya boleh menggunakan `os.walk()` untuk mencipta penyenaraian direktori berstruktur dengan penunjuk kedalaman dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 04:31:02894semak imbas

How can I use `os.walk()` to create a structured directory listing with depth indicators in Python?

Menavigasi Direktori Secara Rekursif dengan os.walk() dalam Python

Berusaha untuk membuat penyenaraian direktori yang lebih berstruktur, pembangun cuba mengubah suai kod mereka untuk memaparkan direktori sebagai tajuk besar dengan garis putus-putus yang menunjukkan kedalaman dan fail di bawahnya. Walau bagaimanapun, pendekatan awal mereka menghasilkan keputusan yang tidak lengkap.

Untuk menangani cabaran ini, kita boleh menggunakan atribut os.sep Python untuk menggambarkan komponen laluan dengan betul. Berikut ialah penyelesaian yang dipertingkatkan:

#!/usr/bin/python
import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)

Dalam kod yang disemak ini, kami membahagikan laluan menggunakan os.sep sebagai pembatas, yang memuatkan kedua-dua sistem fail Windows dan Unix. Dengan menolak 1 daripada panjang laluan, kita boleh mendapatkan kedalaman tahap semasa dan memaparkan bilangan garis putus-putus yang sesuai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan `os.walk()` untuk mencipta penyenaraian direktori berstruktur dengan penunjuk kedalaman dalam Python?. 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