数码工坊
白蓝主题五 · 清爽阅读
首页  > 数据备份

循环控制怎么写:数据备份中的实用技巧

数据备份的时候,经常要处理成百上千个文件。一个个手动复制粘贴不现实,这时候就得靠程序自动跑。循环控制就是让程序一遍遍执行相同操作的关键工具。

什么时候用循环控制

比如你每天要把服务器上的日志文件打包存到另一个硬盘,这些文件名字有规律,像 log_2024-01-01.txt、log_2024-01-02.txt……一直到今天的。你不想每天都手动点一遍,那就写个小脚本,用循环去遍历日期,自动生成文件名并复制过去。

常见的循环写法

在 Python 里,最常用的两种是 for 循环和 while 循环。for 更适合已知范围的情况,比如遍历一组文件名;while 则适合条件不确定的场景,比如一直运行直到磁盘满了为止。

下面是个简单的 for 循环例子,用来模拟批量备份文件:

import os

backup_dir = "/path/to/backup"
files_to_backup = ["data_01.db", "data_02.db", "data_03.db"]

for filename in files_to_backup:
    source = "/origin/" + filename
    target = backup_dir + "/" + filename
    
    if os.path.exists(source):
        print(f"正在备份 {filename}...")
        # 这里可以调用复制函数,比如 shutil.copy
    else:
        print(f"警告:{filename} 不存在,跳过")

这段代码会逐个检查每个文件是否存在,再决定是否备份。如果某天某个文件没生成,也不会让整个流程卡住。

加上条件判断更安全

实际备份时,网络可能不稳定,目标路径也可能没挂载。可以在循环里加个判断,确保每次操作前环境正常。

while not os.path.ismount(backup_dir):
    print("备份盘未连接,5秒后重试...")
    time.sleep(5)

print("检测到备份盘,开始工作")

这个 while 循环会一直等待,直到你插上移动硬盘才继续执行后面的备份任务,避免出错。

别忘了控制节奏

有时候循环跑得太快,系统资源吃紧。比如同时上传几十个大文件,容易把带宽占满。可以加个短暂停顿,让系统喘口气:

import time

for f in file_list:
    upload_file(f)
    print(f"{f} 已上传")
    time.sleep(1)  # 每传完一个等1秒

这种小延迟能让整体更稳定,特别是在老旧设备上跑脚本时特别管用。

写循环的核心是想清楚:你要重复什么动作,重复多少次,以及什么时候该停下来。搞清这三点,写出来的循环基本就能用了。