Я пытался это сделать некоторое время, и я боюсь, что это будет помечено как дубликат, хотя я чувствую, что это не дубликат каталога, подкаталога и файлов списка Python, Это решение печатает его в формате path/subdirectory/files
. Но это не то, что мне нужно.
Рассмотрим следующую структуру моего каталога:
Root
- Directory1
- Files
- Directory2
- Files
- Directory3
- Subdirectory
- Sub-subdirectory1
- Files
- Sub-subdirectory2
- Files
- Sub-subdirectory3
- Files
- Directory4
- Files
Для моей программы мне нужно имя пути, что не сложно. Тем не менее, мне также нужно имя подкаталога, что я могу сделать с for name in subdirs
, однако я не могу получить имя файлов в подкаталоге. Вот что я пробовал:
for path, subdirs, files in os.walk(root):
for dirname in subdirs:
print dirname
for filename in os.listdir(path + ‘\\’ + dirname):
print filename
Это работает до тех пор, пока я не попаду в подкаталог, где он затем обрабатывает имена файлов как имена подкаталогов. Это становится проблемой в моей программе, поскольку приводит к ее аварийному завершению, и я извлекаю информацию из файлов и преобразую их в файлы XML. И мне нужно имя каталога, чтобы правильно назвать файл и дать ему соответствующий заголовок.
Я хочу следующий вывод:
- Directory1
- Files
- Directory2
- Files
- Sub-subdirectory1
- Files
- Sub-subdirectory2
- Files
- Sub-subdirectory3
- Files
- Directory3
- Files
Как мне добиться этого?