Tidak mungkin sulit, tetapi saya mengalami gangguan mental.
Tidak mungkin sulit, tetapi saya mengalami gangguan mental.
Jawaban:
import os
os.listdir("path") # returns list
Satu arah:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
The glob.globmetode 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 iterdirmetode pada Pathobjek:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['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:
import os
start_path = '.' # current directory
for path,dirs,files in os.walk(start_path):
for filename in files:
print os.path.join(path,filename)
glob.globatau os.listdirakan melakukannya.
import globENTER glob.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\*')
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/filetahu apakah itu file atau tidak, dan itu menghemat waktu CPU karena statsudah dilakukan saat memindai dir di Windows:
contoh untuk mendaftar direktori dan mencetak file lebih besar dari max_valuebyte:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(baca jawaban saya berdasarkan kinerja yang luas di sini )
Kode di bawah ini akan mencantumkan direktori dan file dalam direktori. Yang lainnya adalah os.walk
def print_directory_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath,sChild)
if os.path.isdir(sChildPath):
print_directory_contents(sChildPath)
else:
print(sChildPath)
.XYZfile dalam konteks sistem file Unix), bila digunakanglob.glob("/home/username/www/.*")?