我会帮助你,并引导你找到答案(但我不会直接给你答案!)。
首先,最基本的文件编辑功能都在 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)