编写程序,实现一个具有备份文件与文件夹功能的备份工具
时间: 2024-03-18 17:40:24 浏览: 81
用来做文件备份的项目工具
好的,以下是一个备份工具的Python代码实现,可以备份指定的文件或文件夹,并将备份文件保存到指定的目录下。备份文件名格式为原文件名+时间戳。
```python
import os
import shutil
import time
def backup(source, target):
"""备份指定文件或文件夹"""
if os.path.isfile(source): # 如果是文件
# 构建备份文件名(格式为:原文件名_时间戳.扩展名)
file_name, ext_name = os.path.splitext(source) # 分离文件名和扩展名
backup_name = f'{file_name}_{int(time.time())}{ext_name}'
# 复制文件
shutil.copy2(source, os.path.join(target, backup_name))
elif os.path.isdir(source): # 如果是文件夹
# 构建备份文件夹名(格式为:原文件夹名_时间戳)
folder_name = os.path.basename(source)
backup_folder_name = f'{folder_name}_{int(time.time())}'
# 复制整个文件夹
shutil.copytree(source, os.path.join(target, backup_folder_name))
# 测试备份工具
source = 'example.txt' # 待备份文件
# source = 'example_folder' # 待备份文件夹
target = 'backup' # 备份存储目录
if not os.path.exists(target):
os.mkdir(target)
backup(source, target)
```
使用方法:
1. 将待备份的文件或文件夹路径赋值给`source`变量。
2. 将备份文件存储目录路径赋值给`target`变量。
3. 运行程序即可完成备份。如果`target`目录不存在,则会自动创建。
4. 备份文件的命名格式为原文件名(或文件夹名)+时间戳+扩展名(如果是文件)或原文件夹名+时间戳(如果是文件夹)。
注意事项:
1. 如果待备份的文件或文件夹路径中包含中文等非ASCII字符,需要使用相应的编码方式进行转换。
2. 如果`target`目录中已经存在同名的备份文件或文件夹,会自动覆盖。因此使用时需要注意不要将重要文件覆盖。
阅读全文