我正在寻找一种算法来完成一项工作。基本上我从用户那里得到一个输入,即源目录。我想创建两个不同的字典,一个包含文件夹的子文件夹,一个包含文件夹的文件。例如:
我有一个文件夹“文件夹”,其中包含一个名为:log.txt 和 3 个子文件夹、文件夹 1、文件夹 2 和文件夹 3 的文本文件。在文件夹 2 内有另一个名为 txt1.txt 的文本文件和另一个名为 subfolder 的文件夹,在这个子文件夹中有一个名为:pic.png 的图片
folder->log.txt, folder1, folder2->(txt.txt, subfolder->pic.png), folder3
我想要的是一个看起来像这样的字典:
folders = {'folder1':'', 'folder2': 'subfolder', folder3}
files = {'log.txt':'', 'txt.txt': 'folder2', 'pic.png':'folder2/subfolder'}
一般来说,我需要一个清晰的文件夹和子文件夹字典,以便在正确创建文件夹和子文件夹后轻松。然后文件的字典要清楚文件在哪里。如果您有其他结构的文件字典没关系,如果您认为更容易和快速。先感谢您。
编辑:我正在使用 python 3 运行 Mac OS X
编辑2:
dirs = [d for d in os.listdir(source) if os.path.isdir(os.path.join(source, d))]
for folder in dirs:
tmp_source = source + folder
dirs2 = [d for d in os.listdir(tmp_source) if os.path.isdir(os.path.join(tmp_source, d))]
if dirs2 != []:
print('Folder: ', dirs2, 'is not empty')
dic[folder] = dirs2