我正在尝试仅将文件从一个目录复制到另一个目录,如果这些文件尚不存在。
因此,如果我的目录A的文件为“ 1.txt,2.txt,3.txt”,目录B的文件为“ 1.txt,2.txt”,则我只想将“ 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句