备份方法 | 适用对象 | 操作步骤 | 代码示例 |
---|---|---|---|
文件备份 | 文件、文件夹 | 1. 使用 shutil 或 copy 模块复制文件;2. 使用 os 模块遍历文件夹,递归复制;3. 可选:添加时间戳或自定义文件名;4. 可选:使用 tarfile 或 zipfile 进行打包压缩。 |
```python |
import shutil
import os
文件备份
shutil.copy('sourcefile.txt', 'backupfile.txt')
文件夹备份
def backup_directory(src, dst):
for item in os.listdir(src):
s os.path.join(src, item)
d os.path.join(dst, item)
if os.path.isdir(s):
backup_directory(s, d)
else:
shutil.copy(s, d)
backupdirectory('sourcedirectory', 'backup_directory')
``` |
| 列表备份 | 列表数据 | 1. 使用 json
或 pickle
模块序列化列表;2. 将序列化后的数据写入文件;3. 可选:使用时间戳或自定义文件名。 | ```python
import json
列表备份
data_list [1, 2, 3, 4, 5]
with open('backup_list.json', 'w') as f:
json.dump(data_list, f)
使用pickle模块备份
import pickle
with open('backup_list.pkl', 'wb') as f:
pickle.dump(data_list, f)
``` |
| Python自动化备份 | 文件、文件夹、列表等 | 1. 编写脚本,结合以上备份方法;2. 定时任务调度;3. 可选:添加日志记录;4. 可选:使用配置文件设置备份参数。 | ```python import time
import os
自动化备份脚本
def automatedbackup(src, dst, filetype):
if file_type 'file':
shutil.copy(src, dst)
elif file_type 'directory':
backup_directory(src, dst)
elif file_type 'list':
with open(dst, 'w') as f:
json.dump(data_list, f)
定时任务调度
def schedule_backup():
while True:
current_time time.strftime('%Y%m%d%H%M%S')
dstpath f'backup{current_time}.json'
automatedbackup('sourcelist', dst_path, 'list')
time.sleep(3600) 每小时执行一次
主函数
if name 'main':
schedule_backup()
``` |