[python] Python에서 확장자가 .txt 인 디렉토리의 모든 파일 찾기

.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']


답변

당신은 단순히 pathlibs 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🙂 pathlibpathlib2.


답변

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)