遍历python(和python!)中的文件夹结构是非常新的。我在此站点上找到的所有答案似乎都难以解决我的情况。希望有人能提供帮助。
我有一个名为下载的文件夹。(第一级)此文件夹存储在“ C:\ Users \ myusername \ Desktop \ downloads”中
在此文件夹中,我具有以下子文件夹。(第二级)文件夹路径示例:C:\ Users \ myusername \ Desktop \ downloads \ 2020-03-13
2020-03-13
2020-03-13
2020-03-15 ...等
在每个第二级文件夹中,我都有带有pdf文件的另一级文件夹。因此,如果我采用2020-03-13,则文件夹下面有一些文件夹:-3级
22105853
22108288
22182889
第三级别的示例路径:C:\ Users \ myusername \ Desktop \ downloads \ 2020-03-13 \ 22105853
我要做的就是在“下载”(第一个)级别上创建一个新文件夹,并将所有第三个级别的文件夹复制到其中。基本上消除了二级结构。
所需的结果。C:\ Users \ myusername \ Desktop \ r3 \ downloads \ NEWFOLDER \ 22105853 C:\ Users \ myusername \ Desktop \ r3 \ downloads \ NEWFOLDER \ 22108288 C:\ Users \ myusername \ Desktop \ r3 \ downloads \ NEWFOLDER \ 22182889
我从下面的代码开始,设法在一个名为Downloads的新文件中重新创建文件结构:但是现在停滞不前,希望有人能为我提供帮助。
save_dir='C:\\Users\\myusername\\Desktop\\downloads\\'
localpath = os.path.join(save_dir, 'Repository')
if not os.path.exists(localpath):
try:
os.mkdir(localpath, mode=777)
print('MAKE_DIR: ' + localpath)
except OSError:
print("directory error occurred")
for root, dirs, files in os.walk(save_dir):
for dir in dirs:
path = os.path.join(localpath, dir)
if '-' not in path and not os.path.exists(path):
#(Checking for '-' to not create folders at sceond level)
os.mkdir(path, mode=777)
print(path)
此代码段应该工作:
import os
from distutils.dir_util import copy_tree
root_dir = 'path/to/your/rootdir'
try:
os.mkdir('path/to/your/rootdir/dirname')
except:
pass
for folder_name in os.listdir(root_dir):
path = root_dir + folder_name
for folder_name in os.listdir(path):
copy_tree(path + folder_name, 'path/to/your/rootdir/dirname')
只需将目录名称替换为所需的名称
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句