.txt
파이썬 에서 확장자 가 있는 디렉토리의 모든 파일을 어떻게 찾을 수 있습니까?
답변
당신은 사용할 수 있습니다 glob
:
import glob, os
os.chdir("/mydir")
for file in glob.glob("*.txt"):
print(file)
또는 간단히 os.listdir
:
import os
for file in os.listdir("/mydir"):
if file.endswith(".txt"):
print(os.path.join("/mydir", file))
또는 디렉토리를 탐색하려면 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))
답변
glob을 사용하십시오 .
>>> import glob
>>> glob.glob('./*.txt')
['./outline.txt', './pip-log.txt', './test.txt', './testingvim.txt']
답변
그와 같은 일이 일을해야합니다
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.txt'):
print file
답변
이와 같은 것이 효과가 있습니다.
>>> 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']
답변
당신은 단순히 pathlib
s 1을 사용할 수 있습니다 :glob
import pathlib
list(pathlib.Path('your_directory').glob('*.txt'))
또는 루프에서 :
for txt_file in pathlib.Path('your_directory').glob('*.txt'):
# do something with "txt_file"
재귀를 원한다면 사용할 수 있습니다. .glob('**/*.txt)
1pathlib
모듈 파이썬 3.4 표준 라이브러리에 포함시켰다. 그러나 당신은 오래된 파이썬 버전 (즉, 사용에 해당 모듈의-포트를 다시 설치할 수 있습니다 conda
또는 pip
🙂 pathlib
및 pathlib2
.
답변
import os
path = 'mypath/path'
files = os.listdir(path)
files_txt = [i for i in files if i.endswith('.txt')]
답변
나는 os.walk ()를 좋아 한다 :
import os
for root, dirs, files in os.walk(dir):
for f in files:
if os.path.splitext(f)[1] == '.txt':
fullpath = os.path.join(root, f)
print(fullpath)
또는 발전기로 :
import os
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)