gpt4 book ai didi

Python - 仅将新文件复制到另一个目录

转载 作者:太空狗 更新时间:2023-10-30 02:45:20 24 4
gpt4 key购买 nike

我试图将文件从一个目录复制到另一个目录,前提是这些文件尚不存在。

因此,如果我有包含文件“1.txt、2.txt、3.txt”的目录 A 和包含文件“1.txt、2.txt”的目录 B,我只想将“3.txt”复制到目录 B 而不重写其他文件。

我是一名 Python 初学者,我在这方面花费了数小时并进行了大量研究,但我似乎无法找到答案!帮助!

谢谢

最佳答案

我会帮助你,并引导你找到答案(但我不会直接告诉你!)。

所以,首先,最基本的文件编辑功能都在 os 模块中,所以让我们在脚本的顶部导入它:

import os

现在让我们看看如何检查文件是否存在。 [一点研究表明 os.path 模块有一个名为 exists 的函数,它检查文件是否存在!] 所以现在我们准备好了,但我们必须弄清楚如何获取目录 A 中的所有文件。看起来 os 模块也适用于此,具有 listdir 功能。如果我们有一个名为“directoryone”的目录,我们可以通过以下方式获取其中的所有文件/目录(然后将它们放入列表中):

[file for file in os.listdir("directoryone")]

但我们只想获取文件,所以我们必须添加一个 if 语句来缩小我们的列表:

[file for file in os.listdir("directoryone") if os.path.isfile(os.path.join("directoryone", f))]

所以现在我们有一个获取目录中所有文件的语句,并且我们有一种方法来检查文件是否存在。我们需要做的最后一件事是弄清楚如何复制文件。为此,我们必须导入 shutil 模型:

import shutil

然后我们可以像这样使用shutil.copy函数:

shutil.copy(srcfile, dstdir)

所以我们最终得到这段代码:

import os, shutil

directorya = "exampledir"
directoryb = "exampledir2"
files = [file for file in os.listdir(directorya) if os.path.isfile(os.path.join(directorya, file))]
for file in files:
if not os.path.exists(os.path.join(directoryb, file)):
shutil.copy(os.path.join(directorya, file), directoryb)

关于Python - 仅将新文件复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25050409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com