[英]Trying to copy files with a specific extension from source folder to destination folder
[英]Python 3 - Copy files if they do not exist in destination folder
我试图将几千个 pdf 从一个文件位置移动到另一个文件位置。 源文件夹包含多个子文件夹,我仅将 pdf(技术图纸)合并到一个文件夹中,以简化对团队其他成员的搜索。
主要目标是仅复制目标文件夹中尚不存在的文件。 我尝试了几个不同的选项,最近的选项如下所示,在所有情况下,每次都会复制每个文件。 在今天之前,每当我尝试批量移动文件时,如果文件存在于目标文件夹中,我都会收到错误消息,但我不再这样做了。
我已经确认有些文件存在于两个位置,但仍在被复制。 有什么我遗漏或可以修改以纠正的吗?
感谢您的帮助。
import os.path
import shutil
source_folder = os.path.abspath(r'\\source\file\location')
dest_folder = os.path.abspath(r'\\dest\folder\location')
for folder, subfolders, files in os.walk(source_folder):
for file in files:
path_file=os.path.join(folder, file)
if os.path.exists(file) in os.walk(dest_folder):
print(file+" exists.")
if not os.path.exists(file) in os.walk(dest_folder):
print(file+' does not exist.')
shutil.copy2(path_file, dest_folder)
os.path.exists
返回一个布尔值。 os.walk
创建一个生成器,该生成器生成(dirpath, dirnames, filenames)
形式的三元组。 因此,第一个条件永远不会为真。
此外,即使该条件是正确的,您的第二个条件也有冗余,因为它只是第一个的否定。 你可以用else
替换它。
你想要的是类似的东西
if file in os.listdir(dest_folder):
...
else:
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.