Tidak mungkin sulit, tetapi saya mengalami gangguan mental.
188
import os
os.listdir("path") # returns list
Satu arah:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
The glob.glob
metode di atas tidak akan daftar file yang tersembunyi.
Karena saya awalnya menjawab pertanyaan ini bertahun-tahun yang lalu, pathlib telah ditambahkan ke Python. Cara yang saya sukai untuk mendaftar direktori sekarang biasanya melibatkan iterdir
metode pada Path
objek:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
.XYZ
file dalam konteks sistem file Unix), bila digunakanglob.glob("/home/username/www/.*")
?['c:\\users']
glob.glob(r'c:\users\*')
(glob tidak benar-benar mendaftar direktori, tetapi memperluas tanda bintang dan semacamnya yang menyelesaikan tugas serupa).os.walk
dapat digunakan jika Anda membutuhkan rekursi:sumber
glob.glob
atauos.listdir
akan melakukannya.sumber
import glob
ENTERglob.glob(r'c:\users')
ENTER sepertinya hanya kembali['c:\\users']
. Mengapa demikian? Saya ingin menggunakan glob.glob karena seperti yang ditunjukkan oleh pengguna lain, itu seharusnya mengembalikan isi direktori sementara juga mengabaikan file tersembunyi. Ini penting.glob
:glob.glob(r'c:\users\*')
The
os
modul menangani semua itu.sumber
Di Python 3.4+, Anda dapat menggunakan
pathlib
paket baru :Path.iterdir()
mengembalikan iterator, yang dapat dengan mudah diubah menjadilist
:sumber
Sejak Python 3.5, Anda dapat menggunakan
os.scandir
.Perbedaannya adalah ia mengembalikan entri file bukan nama. Pada beberapa OS seperti windows, itu berarti Anda tidak perlu
os.path.isdir/file
tahu apakah itu file atau tidak, dan itu menghemat waktu CPU karenastat
sudah dilakukan saat memindai dir di Windows:contoh untuk mendaftar direktori dan mencetak file lebih besar dari
max_value
byte:(baca jawaban saya berdasarkan kinerja yang luas di sini )
sumber
Kode di bawah ini akan mencantumkan direktori dan file dalam direktori. Yang lainnya adalah os.walk
sumber