Kaip įtraukti visus katalogo failus?

Kaip galėčiau išvardyti visus katalogo failus „Python“ ir įtraukti juos į list ?

3196
08 июля '10 в 22:31 2010-07-08 22:31 nustatė duhhunjonn liepos 8 d., 10 val. 10:31 val. 2010-07-08 22:31
@ 40 atsakymų
  • 1
  • 2

os.listdir() suteiks jums viską kataloge - failai ir katalogai.

Jei norite tiesiog failus, galite filtruoti tai naudojant os.path :

 from os import listdir from os.path import isfile, join onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] 

arba galite naudoti os.walk() , kuris duos du sąrašus kiekvienam aplankytam katalogui - suskirstyti į failus ir jums. Jei jums reikia tik viršutinio katalogo, galite tiesiog pertraukti pirmą kartą

 from os import walk f = [] for (dirpath, dirnames, filenames) in walk(mypath): f.extend(filenames) break 

Galiausiai, kaip parodyta šiame pavyzdyje, pridedant vieną sąrašą kitam, galite naudoti .extend() arba

 >>> q = [1, 2, 3] >>> w = [4, 5, 6] >>> q = q + w >>> q [1, 2, 3, 4, 5, 6] 

Asmeniškai aš norėčiau .extend()

3160
09 июля '10 в 0:01 2010-07-09 00:01 atsakymas pateikiamas pycruft liepos 10 d., 10 val. 0:01 2010-07-09 00:01

Norėčiau naudoti „ glob , nes jis atitinka ir plečia modelį.

 import glob print(glob.glob("/home/adam*.gif ) и может содержать подстановочные знаки в стиле оболочки. Сломанные символические ссылки включены в результаты (как в оболочке). 
...
Изменено в версии 3.5 : Поддержка рекурсивных глобусов с использованием " ** ".


[Python 3]: class pathlib. Путь (* pathsegments) (Python 3.4 +, обратный порт : [PyPI]: pathlib2 ) 

[Python 2]: dircache.listdir (путь) (только Python 2 ) 


[man7]: OPENDIR (3) / [man7]: READDIR (3) / [man7]: CLOSEDIR (3) через [Python 3]: ctypes - библиотека сторонних функций для Python (специфична для POSIX) 

ctypes - это библиотека внешних функций для Python. Он предоставляет C-совместимые типы данных и позволяет вызывать функции в DLL или общих библиотеках. Это может быть использовано, чтобы обернуть эти библиотеки в чистый Python.