前言:
在实际的工作中遇到过需要备份文件,例如在自动化的文件中有些文件为了方便会固定文件的名称,防止因为文件名称的更改造成程序运行出错或者文件的储存的名称有问题找不到最终的文件。
一、文件唯一时:
import os
import shutil
# 指定路径
path = '需要复制的文件路径'
# 包含特定字符的文件名称
specific_char = '文件名称中特有的字段'
# 使用os库打开指定路径,得到包含特定字符的文件名称
files = [f for f in os.listdir(path) if specific_char in f]
# 将这个文件复制到另外一个文件夹中
destination_folder = '复制文件之后保存文件的路径'
shutil.copy2(os.path.join(path, files[0]), os.path.join(destination_folder, '保存的文件名称'))
print("Files copied successfully!")
二、文件不唯一时:
import os
import shutil
files4 = os.listdir('需要复制的文件路径')
special_field= '文件包含的特殊字段'
x = 0
file_Output=''
for file in files4:
if special_field in file:
file_path ='需要复制的文件路径'+'\{}'.format(file)
#获得文件的最后保存时间
modification_time = os.path.getmtime(file_path)
modification_time = int(modification_time)
print(file,modification_time)
if modification_time>x:
file_Output = file
x=modification_time
print(x,file_Output)
destination_folder='文件保存路径'
path = '需要复制的文件路径'
shutil.copy2(os.path.join(path, file_stock), os.path.join(destination_folder, '保存的文件名称'))
思路:在上述代码中我们首先是打开 ‘需要复制的文件的路径’,并获得包含‘文件包含的特殊字段’的所有文件,然后依次获得所有文件的最后一次保存时间,然后得到最后一次保存的文件名称,然后进行复制。
优点:如果一个文件夹中包含很多文件名称相似的文件,此方法可以得到最近一次保存的文件,然后进行复制。
缺点: 这样复制的思路是找到最后一次保存的文件,如果很早版本的文件最近有修改,就会复制错误。