在Python中通过arch()函数实现文件的备份和恢复
发布时间:2023-12-27 04:39:46
在Python中,可以使用shutil模块的copy2()函数来实现文件的备份和恢复。该函数将文件的内容复制到备份文件中,并保留原文件的元数据信息(如权限和时间戳)。下面是一个使用arch()函数实现文件备份和恢复的例子代码:
import os
import shutil
def arch(file_path):
# 检查文件是否存在
if not os.path.exists(file_path):
print("文件不存在!")
return
# 指定备份文件名
backup_path = file_path + '.bak'
# 备份文件
try:
shutil.copy2(file_path, backup_path)
print(f"{file_path} 备份成功,备份文件为 {backup_path}")
except shutil.SameFileError:
print("备份失败,备份文件与原文件相同")
except shutil.PermissionError:
print("备份失败,没有权限访问文件")
except:
print("备份失败,发生未知错误")
def restore(file_path):
# 检查备份文件是否存在
backup_path = file_path + '.bak'
if not os.path.exists(backup_path):
print("备份文件不存在!")
return
# 恢复文件
try:
shutil.copy2(backup_path, file_path)
print(f"{backup_path} 恢复到 {file_path} 成功")
# 删除备份文件
os.remove(backup_path)
print("备份文件删除成功")
except shutil.SameFileError:
print("恢复失败,备份文件与原文件相同")
except shutil.PermissionError:
print("恢复失败,没有权限访问文件")
except:
print("恢复失败,发生未知错误")
# 备份文件
file_path = 'test.txt'
arch(file_path)
# 恢复文件
restore(file_path)
在上述代码中,arch()函数用于备份指定的文件,它首先检查文件是否存在,然后使用shutil.copy2()函数将文件内容复制到备份文件中。如果备份成功,将会打印备份成功的信息;如果备份失败,则会根据具体的错误类型打印相应的错误信息。
restore()函数用于恢复文件,它首先检查备份文件是否存在。如果备份文件存在,将使用shutil.copy2()函数将备份文件内容复制到原文件中,并保留原文件的元数据信息。如果恢复成功,将会打印恢复成功的信息;如果恢复失败,则会根据具体的错误类型打印相应的错误信息。此外,恢复成功后会删除备份文件。
最后,在使用例子中,我们首先调用arch()函数备份文件,然后调用restore()函数恢复文件。
