如何在比较两个目录时移动不同和不存在的文件?

2024-05-19 21:15:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个存档文件夹,名为“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而不是“print” 我试过“shutil”和“shutil”操作系统重命名“,但我不能让它工作。


来自“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']

仅供参考。你知道吗


Tags: 数据namein文件夹mainfilesfilefilecmp
2条回答

以下是answer关于如何创建新目录并将文件移到其中的参考。你知道吗

似乎您已经有了要移动的文件列表的部分。你知道吗

import shutil

for file in file_list:
    shutil.move(file, dir3) # shutil.copy if you want

注意:file应该是文件的路径,dir3可以是目录或文件路径,如果您想更改名称或类似的内容。你知道吗

相关问题 更多 >