Получение каждого файла в каталоге Windows - PullRequest
17 голосов
/ 12 апреля 2011

У меня есть папка в Windows 7, которая содержит несколько .txt файлов. Как получить каждый файл в указанном каталоге в виде списка?

Ответы [ 5 ]

16 голосов
/ 12 апреля 2011

Вы можете использовать os.listdir(".") для просмотра списка содержимого текущего каталога ("."):

for name in os.listdir("."):
    if name.endswith(".txt"):
        print(name)

Если вы хотите, чтобы весь список представлял собой список Python, используйте понимание списка :

a = [name for name in os.listdir(".") if name.endswith(".txt")]
7 голосов
/ 12 апреля 2011
import os
import glob

os.chdir('c:/mydir')
files = glob.glob('*.txt')
2 голосов
/ 06 ноября 2018

Все ответы здесь не касаются того факта, что если вы передадите glob.glob() путь Windows (например, C:\okay\what\i_guess\), он не будет работать должным образом. Вместо этого вам нужно использовать pathlib:

from pathlib import Path

glob_path = Path(r"C:\okay\what\i_guess")
file_list = [str(pp) for pp in glob_path.glob("**/*.txt")]
1 голос
/ 12 апреля 2011
import fnmatch
import os

return [file for file in os.listdir('.') if fnmatch.fnmatch(file, '*.txt')]
0 голосов
/ 12 апреля 2011

Если вам нужен только текущий каталог, используйте os.listdir.

>>> os.listdir('.') # get the files/directories
>>> [os.path.abspath(x) for x in os.listdir('.')] # gets the absolute paths
>>> [x for x in os.listdir('.') if os.path.isfile(x)] # only files
>>> [x for x in os.listdir('.') if x.endswith('.txt')] # files ending in .txt only

Вы также можете использовать os.walk, если вам нужно рекурсивно получить содержимое каталога.Обратитесь к документации по питону для os.walk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...