Python shutil.move 无限复制

Python shutil.move copies endlessly

我制作了一个脚本,它从 src 文件夹中读取 pdf 文件,从文件中获取一些信息,然后重命名文件并将其移动到另一个位置。 每 5 秒执行一次。

由于 src 和 dest 在不同的磁盘上,我使用 shutil.move 而不是 os.rename。

因为 src 和 dest 在不同的磁盘上 shutil.move 将改为复制并删除源文件。

脚本运行良好,但有时源文件夹中的权限存在问题。 这会将源文件保留在源文件夹中并被无休止地复制,因为源文件无法删除。

我该如何解决这个问题?由于我没有保留原始 pdf 文件的名称,所以我不知道如何解决这个问题。

您是否考虑过跟踪上次移动文件的时间,然后仅移动具有较晚修改时间戳的源文件?

您可以调用 os.scandir() 列出源目录,获取每个条目的 DirEntry 信息。对于每个 entry,检查 entry.is_file() 看它是否是一个文件,entry.name 看它是否以 '.pdf' 结尾,检查它的 entry.stat().st_mtime 看它是否更新比你上次扫描的要多。

您仍然可以调用 shutil.copyfile() 将每个选定的文件复制到目标目录中的新名称。