我想复制一个文件夹结构并将其整齐地组合到另一个文件夹结构中。我的问题是使用os.步行当它找到第一个文件所在的文件夹,然后将该目录下的所有文件合并到一个列表中时,我似乎找不到停止的方法。你知道吗
例如:
Library (root directory)
-Accessories
--Clock
---Clock.3ds
---Maps
----Map1.jpg
----Map2.jpg
-Dining Chairs
--Dining Chair1
---DiningChair1.3ds
---Maps
----DiningChair.jpg
--DiningChair2
---3D
----DiningChair2.3ds
----DiningChair2.jpg
最终结果:
Library (root directory)
-Accessories
--Clock
---Clock.3ds
---Maps
----Map1.jpg
----Map2.jpg
如果我想把所有文件从这个文件夹移到下一个文件夹中,那么我就把它们从这个文件夹移到下一个文件夹中列表等。。。你知道吗
我目前面临的问题是,当我到达最子文件夹时,它会将此作为一个单独的列表来复制文件,当我真的希望最上面的文件夹包含文件时,再将下面的所有文件合并。你知道吗
如果你检查下面的输出代码,我的主要问题是'华丽的时钟'输出两个单独的列表,当我想在这个文件夹中的所有文件被合并。你知道吗
仅供参考:我使用了topdown=False,希望我可以用相反的方法来实现这一点-就像转到最子目录一样,向上直到到达一个没有文件的文件夹,复制下面的所有文件,然后将此目录标记为完整,继续。你知道吗
import os
import shutil
INPUT_DIRECTORY = 'C:/Users/James/Work/Personal/Python/Projects/3DLibrary/Library_Test/'
# 3D file extensions.
FILE_EXTENSION_3D = (('.max', '.fbx', '.obj', '.skp', '.dwg', 'dxf', '.3ds'))
# Image Extensions
FILE_EXTENSION_2D = (('.jpg', 'jpeg','.png', '.tif', '.tiff', '.bmp', '.gif', '.psd', '.raw', '.ai', '.eps', '.svg', '.svgz'))
ignoreList = []
collectedFiles = []
# Go to child most folder.
for dirpath, dirnames, filenames in os.walk(INPUT_DIRECTORY, topdown=False):
rootDirectory = False
while not rootDirectory:
# Add files to list until reach parent with no files.
print('PATH IS: ', dirpath)
for directory in dirnames:
print('DIRECTORY IS:', directory)
# Create a list of found files to collectedFiles list.
collectedFiles.append(filenames)
# Add this parent folder to a foundDirectory list.
currentDirectory = dirpath
ignoreList.append(currentDirectory)
#print(ignoreList)
# Copy collected files to folder.
print('Copy collected files to folder...')
print(collectedFiles)
print()
# Reset collectedFiles list.
collectedFiles = []
break
输出:
PATH IS: C:/Users/James/Work/Personal/Python/Projects/3DLibrary/Library_Test/3DD_Vase
Copy collected files to folder...
[['3DD_Vase.jpg', '3DD_Vase.max', 'red.jpg', 'stripes.jpg']]
PATH IS: C:/Users/James/Work/Personal/Python/Projects/3DLibrary/Library_Test/Accessories\ornate clock\3d
Copy collected files to folder...
[['clock.max']]
PATH IS: C:/Users/James/Work/Personal/Python/Projects/3DLibrary/Library_Test/Accessories\ornate clock
DIRECTORY IS: 3d
Copy collected files to folder...
[['clock.jpg']]
etc...
目前没有回答
相关问题 更多 >
编程相关推荐