Форум сайта python.su
Есть дерево вида: папка -> папка1, папка2, … папкаN в каждой из этих папок лежат файлы. Как получить список всех файлов?
Офлайн
os.walk() ?
Офлайн
Да, но как сформировать из этих списков, один с названиями файлов?
Офлайн
Делал когда-то нечто похожее. Может поможет:
def treecopy(src='', dst='', mask='*.*'):
names = os.listdir(src)
if os.path.exists(dst) != True:
os.mkdir(dst)
print 'Create dir', dst
for name in names:
srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
try:
if os.path.isdir(srcname):
treecopy(srcname, dst, mask)
else:
if fnmatch.fnmatch(`name`, `mask`):
if os.path.exists(dstname) == True:
print 'File exists', dstname
continue
shutil.copy2(srcname, dstname)
except (IOError, os.error), why:
print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))
Офлайн
Landing
например так
for dir in os.walk('path'):
for file_name in dir:
print file_name
Офлайн
balu
а вроде у shutil есть метод для копирования дерева каталогов? ;-)
Офлайн
hellsladeУ меня он отличается - там повторяется структура каталогов, а у меня из всех каталогов в один каталог. Я его сюда пихнул как пример механизма прохода всех каталогов.
balu
а вроде у shutil есть метод для копирования дерева каталогов? ;-)
Офлайн
balu
О, сори. Не разбирался в коде, просто увидел обход и копирование :)
Офлайн
спасибо hellslade!
Офлайн
Теперь не могу сопоставить путь и файл. Чтобы файл выводился с полным путем…
Офлайн