在Python中,如何从集合比较中删除目录?比较2组目录 - 删除不匹配的文件夹

时间:2015-12-03 20:26:14

标签: python boto

我有一个目录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”方式吗?我应该拨打电话吗?

1 个答案:

答案 0 :(得分:1)

shutil.move有两个参数:src文件/目录和目标文件/目录。 如果你有一个文件/目录的列表(或你的案例集),你可以这样做:

for od in oldfolders:
   shutil.move(od,"/old")