我有一个目录1,它有新文件,目录2有相同的文件但是较旧。我想移动目录1或目录2中不存在的任何文件夹,并且只保存与这两个位置匹配的文件:
这是我的代码:
def removeOldDirs():
dir1 = os.listdir('/directory1')
dir2 = os.listdir('/directory2')
dir1 = set(dir1)
dir2 = set(dir2)
oldFolders = set(dir2).difference(dir1)
os.chdir('/')
shutil.move(oldFolders,'/old')
print os.listdir('.')
I我希望在任一目录中不匹配的文件夹名称移动到'/ old'文件目录。我收到一个错误说
TypeError: coercing to Unicode: need string or buffer, set found
coercing to Unicode: need string or buffer, set found
有更多“pythonic”方式吗?我应该拨打电话吗?
答案 0 :(得分:1)
shutil.move有两个参数:src文件/目录和目标文件/目录。 如果你有一个文件/目录的列表(或你的案例集),你可以这样做:
for od in oldfolders:
shutil.move(od,"/old")