Сделайте пустой файл для каждой подпапки, используя имя подпапки в Python - PullRequest
0 голосов
/ 18 января 2019

Если у меня структура папок выглядит следующим образом:

folder
        \ sub1\sub1_1
        \ sub1\sub1_2
        \ sub1\sub1_3
        .
        .
        .
        \ sub2\sub2_1
        \ sub2\sub2_2
        \ sub2\sub2_3
        .
        .
        .

Я хочу, чтобы файлы для каждой подпапки использовали имя подпапки. Как я могу сделать это в Python? Благодарю. Ожидаемый результат:

folder
        \ sub1\sub1_1\sub1_1.xlsx
        \ sub1\sub1_2\sub2_2.xlsx
        \ sub1\sub1_3\sub3_3.xlsx
        .
        .
        .
        \ sub2\sub2_1\sub2_1.xlsx
        \ sub2\sub2_2\sub2_2.xlsx
        \ sub2\sub2_3\sub2_3.xlsx
        .
        .
        .

Вот что я пробовал:

import os
dir_name = "D:/folder"     
for root, dirs, files in os.walk(dir_name, topdown=False):
    for subfolder in dirs:
        print(subfolder)

1 Ответ

0 голосов
/ 18 января 2019

Вы можете сделать это рекурсивно:

from os import listdir
from os.path import isfile, join

mypath = "add/your/path"

def write_files(path):
    folders = [f for f in listdir(path) if not isfile(join(path, f))]
    if len(folders) == 0:
        #Writing the actual File
        open(path+"/"+path.split("/")[-1]+".xlsx", "w+")
    else:
        for folder in folders:
            write_files(path+"/"+folder)

write_files(mypath)

Обратите внимание, что при этом будут создаваться только текстовые файлы с окончанием xlsx, а не настоящие файлы Excel. Поэтому вы можете установить некоторую библиотеку, способную создавать файлы Excel

...