Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何从集合比较中删除目录?比较两组目录-删除不匹配的文件夹_Python_Boto - Fatal编程技术网

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

在Python中,如何从集合比较中删除目录?比较两组目录-删除不匹配的文件夹,python,boto,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

我有一个有新文件的目录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('.')
我希望两个目录中不匹配的文件夹名称移动到“/old”文件目录。我听到一个错误,说
TypeError:强制使用Unicode:需要字符串或缓冲区,已找到集合
强制使用Unicode:需要字符串或缓冲区,已找到集合


有没有一种更“蟒蛇式”的方法?我应该进行系统调用吗?

shutil.move有两个参数:src文件/目录和目标文件/目录。 如果您有一个文件/目录列表(或您的案例集),您可以只执行以下操作:

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

这里发生了很多事情。你有没有可能删除一些不必要的上下文?同意@robert我们真的需要一个MCVE。如果你把它提炼成最简单的例子,即使没有回答者,你也可能会明白需要做什么。好的-没问题,给我一分钟时间。为冗长的话道歉。我删除了所有评论-谢谢你,罗伯特和亚当。我将我的问题提炼到了我遇到的正确的问题上-对不起,我没有说到点子上!感谢我工作中的首席开发人员对我大喊大叫;-)谢谢@Foon这正是我错过的!我肯定是想得太多了。