Як на мові Python перерахувати всі файли каталогу і додати їх в список
?
[os.listdir()
][1] отримає все, що є в каталозі - файли і каталоги.
Якщо вам потрібні тільки файли, ви можете відфільтрувати їх за допомогою os.path
:
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
або ви можете скористатися [os.walk()
][2], який видасть два списки для кожного каталогу, який він відвідає - з поділом на файли і теки для вас. Якщо вам потрібен лише верхній каталог, ви можете просто розбити його під час першого відвідування
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
[1]: https://docs.python.org/2/library/os.html#os.listdir "os.listdir"; [2]: https://docs.python.org/2/library/os.html#os.walk "os.walk";
Я віддаю перевагу використанню модуля glob
, оскільки він виконує співставлення шаблонів і розширення.
import glob
print(glob.glob("/home/adam/*.txt"))
Він поверне список із запитуваними файлами:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
import os
os.listdir("somedirectory")
поверне список всіх файлів і каталогів в "деякому каталозі".