我有一个名为“dir1”的存档文件夹 我有一个名为“dir2”的新数据文件夹 我有一个差异文件夹,名为“dir3” 数据是jpgs,没有子文件夹。
dir1
1.jpg
2.jpg
3.jpg
4.jpg
dir2
1.jpg (edited file)
2.jpg (edited file)
3.jpg (same file as in dir1)
4.jpg (same file as in dir1)
5.jpg (new file)
6.jpg (new file)
我需要将新的,遗失的,编辑过的和不同的文件移动到dir3 结果将是:
dir3
1.jpg
2.jpg
5.jpg
6.jpg
这就是我所拥有的:
from filecmp import dircmp
dcmp = dircmp('dir1', 'dir2')
def main(dcmp):
for name in dcmp.diff_files, dcmp.right_only:
print (name)
if __name__ == "__main__":
main(dcmp)
结果是:
['2.jpg', '1.JPG']
['6.jpg', '5.jpg']
“打印”的内容,我如何将它们移动到dir3
我试过“shutil”和“os.rename”,但我无法让它发挥作用。
来自“filecmp”和“dircmp”的信息。
import filecmp
filecmp.dircmp('dir1', 'dir2').report()
结果是:
diff dir1 dir2
Only in dir2 : ['5.jpg', '6.jpg']
Identical files : ['3.JPG', '4.JPG']
Differing files : ['1.JPG', '2.jpg']
这只是fyi。
答案 0 :(得分:0)
以下是answer对如何创建新目录并将文件移动到其中的引用。
答案 1 :(得分:0)
您好像已经有了制作要移动的文件列表的部分。
import shutil
for file in file_list:
shutil.move(file, dir3) # shutil.copy if you want
注意:file
应该是文件的路径,如果要更改名称等,dir3
可以是目录或文件路径。