Bagaimana saya bisa menemukan semua file dalam direktori yang memiliki ekstensi .txt
di python?
Bagaimana saya bisa menemukan semua file dalam direktori yang memiliki ekstensi .txt
di python?
Kamu dapat memakai glob
:
import glob, os
os.chdir("/mydir")
for file in glob.glob("*.txt"):
print(file)
atau sederhananya os.listdir
:
import os
for file in os.listdir("/mydir"):
if file.endswith(".txt"):
print(os.path.join("/mydir", file))
atau jika Anda ingin melintasi direktori, gunakan os.walk
:
import os
for root, dirs, files in os.walk("/mydir"):
for file in files:
if file.endswith(".txt"):
print(os.path.join(root, file))
Menggunakan gumpal.
>>> import glob
>>> glob.glob('./*.txt')
['./outline.txt', './pip-log.txt', './test.txt', './testingvim.txt']
Sesuatu seperti itu harus melakukan pekerjaan itu
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.txt'):
print file
Sesuatu seperti ini akan berfungsi:
>>> import os
>>> path = '/usr/share/cups/charmaps'
>>> text_files = [f for f in os.listdir(path) if f.endswith('.txt')]
>>> text_files
['euc-cn.txt', 'euc-jp.txt', 'euc-kr.txt', 'euc-tw.txt', ... 'windows-950.txt']
saya suka os.walk ():
import os, os.path
for root, dirs, files in os.walk(dir):
for f in files:
fullpath = os.path.join(root, f)
if os.path.splitext(fullpath)[1] == '.txt':
print fullpath
Atau dengan generator:
import os, os.path
fileiter = (os.path.join(root, f)
for root, _, files in os.walk(dir)
for f in files)
txtfileiter = (f for f in fileiter if os.path.splitext(f)[1] == '.txt')
for txt in txtfileiter:
print txt
import os
path = 'mypath/path'
files = os.listdir(path)
files_txt = [i for i in files if i.endswith('.txt')]
Berikut ini lebih banyak versi yang sama yang menghasilkan hasil yang sedikit berbeda:
import glob
for f in glob.iglob("/mydir/*/*.txt"): # generator, search immediate subdirectories
print f
print glob.glob1("/mydir", "*.tx?") # literal_directory, basename_pattern
import fnmatch, os
print fnmatch.filter(os.listdir("/mydir"), "*.tx?") # include dot-files