Solusi sederhana untuk mengulang file dalam direktori menggunakan fungsi os.listdir(). Ini mengembalikan daftar file dan subdirektori yang ada di direktori yang ditentukan. Untuk mendapatkan file saja, Anda dapat memfilter daftar dengan fungsi os.path.isfile()
1
2
3
4
5
6
7
8
impor os
direktori = 'jalur/ke/dir'
untuk namafile di os. listdir(direktori).
f = os. jalur. gabung(direktori, namafile)
jika os. jalur. isfile(f).
cetak(f)
Unduh Kode
Untuk mendapatkan file dengan ekstensi tertentu, misalnya .txt, Anda dapat menambahkan syarat untuk memeriksa ekstensi file
1
2
3
4
5
6
7
8
impor os
direktori = 'jalur/ke/dir'
untuk namafile di os. listdir(direktori).
f = os. jalur. gabung(direktori, namafile)
jika os. jalur. isfile(f) dan . filename.diakhiri dengan('. txt').
cetak(f)
Unduh Kode
2. Menggunakan fungsi os.scandir()_
Dimulai dengan Python 3. 5, pertimbangkan untuk menggunakan fungsi os.scandir()_ saat Anda memerlukan jenis file atau informasi atribut file. Ini mengembalikan entri direktori dan informasi atribut file, memberikan kinerja yang jauh lebih baik daripada os.listdir()
1
2
3
4
5
6
7
8
impor os
direktori = 'jalur/ke/dir'
untuk entri di os. scandir(direktori).
jika masuk. is_file() dan entri . .nama. diakhiri dengan('. txt').
cetak(entri. jalur)
Unduh Kode
3. Menggunakan modul pathlib_
Dengan Python3. 4, Anda juga dapat menggunakan modul pathlib. Untuk mengulangi file dalam direktori, gunakan fungsi Path.glob(pattern), yang menggumpalkan pola relatif yang diberikan dalam direktori yang ditentukan dan menghasilkan file yang cocok
Contoh berikut menunjukkan cara memfilter dan menampilkan file teks yang ada di direktori
1
2
3
4
5
6
7
dari pathlib impor Jalur
direktori = 'jalur/ke/dir'
daftar jalur = Jalur(direktori).glob('*. txt')
untuk jalur di daftar jalur.
cetak(jalur)
Unduh Kode
Sebagai alternatif, Anda dapat menggunakan fungsi os.listdir()_0, yang menghasilkan objek jalur dari konten direktori. Untuk mendapatkan ekstensi file dari file, gunakan properti os.listdir()1
1
2
3
4
5
6
7
8
dari pathlib impor Jalur
direktori = 'jalur/ke/dir'
untuk jalur di Jalur(directory).iterdir().
jika jalur. file_is() dan jalur . .akhiran == '. txt'.
cetak(jalur)
Unduh Kode
4. Menggunakan fungsi os.listdir()_2
Jika Anda juga perlu mencari subdirektori, pertimbangkan untuk menggunakan fungsi os.listdir()2. Ini menghasilkan 3-tuple os.listdir()4 untuk semua yang dapat dijangkau dari direktori yang ditentukan, di mana os.listdir()5 adalah jalur ke direktori, os.listdir()6 adalah daftar nama subdirektori di dirpath, dan os.listdir()7 adalah daftar nama non-direktori
1
2
3
4
5
6
7
8
9
impor os
direktori = 'jalur/ke/dir'
untuk root, direktori, files in os.berjalan(direktori).
untuk file di file:
jika berkas. diakhiri dengan('. txt').
cetak(os. jalur. bergabung(root, berkas))
Unduh Kode
Pada Python 3. 5, os.listdir()2 panggilan os.scandir() bukan os.listdir(), sehingga membuatnya lebih cepat dengan mengurangi jumlah total panggilan ke os.path.isfile()1
5. Menggunakan modul os.path.isfile()_2
Terakhir, Anda dapat menggunakan fungsi os.path.isfile()_3, yang mengembalikan iterator pada daftar nama jalur yang cocok dengan pola yang ditentukan