我在Unix系统上获得了这个文件路径:
Folder1/Folder2/text.txt
Folder1仅包含Folder2,Folder2包含该文件。因此,文件test.txt的路径可以更短 - > Folder1 / text.txt,我需要一些通用的解决方案:
if(folder contains only one subfolder)-> move files from subfolder to folder and del subfolder
答案 0 :(得分:2)
根据您的评论,我看到您要移动Folder3中的文件以及Folder2。这是一个程序,它将移动Folder1下面的所有文件夹中的所有文件,然后删除文件夹(但不删除Folder1。)首先,您必须更改目录Folder1。如果您要移动的任何文件已经存在于Folder1中,您将收到一条错误消息。你可以解决这个问题。我输入了一些打印语句,因此您可以看到它正常工作。
import os, shutil
p = os.path._getfullpathname("Folder1")
print p
for root, dirs, files in os.walk(p, topdown=False):
for file in files:
k = os.path.join(root,file)
print k
shutil.move(k, p)
for dir in dirs:
k = os.path.join(root,dir)
print k
os.rmdir(k)