在Python中,如何从集合比较中删除目录?比较两组目录-删除不匹配的文件夹
我有一个有新文件的目录1和一个有相同文件但较旧的目录2。我想移动目录1或目录2中不存在的任何文件夹,并且只保存与这两个位置匹配的文件: 这是我的密码:在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
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这正是我错过的!我肯定是想得太多了。