Python - 如何仅复制新修改的文​​件

标签 python

我正在尝试编写一个 python 脚本,将某些文件从源文件夹复制到目标,但是只应复制新创建的文件。 例如,源文件夹包含 2005 个文件,目标文件夹包含 2000 个文件,我的脚本应该复制 5 个丢失的文件

在下面的脚本中,逻辑是记录扩展名为“.extension”的文件的修改时间,并尝试获取它并在下一步中进行比较

import sys, os, shutil
import glob
import os.path, time

fob     = open(r"C:\Python\Log.txt","a")
dir_src = r"C:\Python\Source"
dir_dst = r"C:\Python\Dest"

for w in os.listdir(dir_src):
    if w.endswith('.extenstion'):
        pathname = os.path.join(dir_src, w)
        if not Date_File in (fob):
            shutil.copy2(pathname, dir_dst)
            fob.write("File Name:   %s" % os.path.basename(pathname))
            fob.write("   Last modified Date:   %s" % time.ctime(os.path.getmtime(pathname)))
            fob.write("   Copied On:   %s" % time.strftime("%c"))
            fob.write("\n")                
fob.close()
os.system("PAUSE")

我找不到比较日期并检查是否应复制文件的方法。

欢迎任何其他方法。

最佳答案

您应该能够通过执行 list(set(os.listdir(dir_src)) - set(os.listdir(dir_dst))) 从源文件夹中删除目标文件夹中已存在的文件 并迭代此列表。

关于Python - 如何仅复制新修改的文​​件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697578/

相关文章:

python - Spacy - nlp.pipe() 返回生成器

python - 将 Mac OS 升级到 Sierra 后,箭头键在 Python shell 中不再起作用

python - 哪个开销更大 : Creating a new socket each time or maintaining a single socket for data transfer

Python path.join 在 Mac 和 Windows 中运行时的行为不同

python - 从Python到MySQL上传数据失败

python - 我一直在使用字典键作为成员标记。这是一个好主意吗?

python - 将冒号分隔的列表转换为字典?

python - Pytest 无法识别添加的选项

带有副作用的 Python 闭包

python - 对于 DataFrame 的每一行,将给定条件的第一列索引放入新列中