JMeter请求处理完成后如何删除CSV文件中的对应行?
实现CSV记录分批消耗并删除已用记录的方案
核心逻辑
每次运行时读取CSV的指定批次记录,处理完成后将剩余记录重新写入原文件,配合定时任务实现每小时执行一次,刚好10次用完500条(50条/次)。
Python实现代码
以下是直接可用的脚本,替换业务逻辑部分即可:
import csv import shutil def process_batch(csv_file, batch_size=50): # 先备份原文件,防止数据丢失 backup_file = f"{csv_file}.bak" shutil.copy(csv_file, backup_file) # 读取完整CSV内容 with open(csv_file, 'r', newline='', encoding='utf-8') as f: reader = csv.reader(f) headers = next(reader) records = list(reader) # 检查剩余记录是否足够 if len(records) < batch_size: print("剩余记录不足,停止处理") return # 拆分待处理和剩余记录 process_records = records[:batch_size] leftover_records = records[batch_size:] # -------------------------- # 这里替换成你的业务处理逻辑 print(f"处理{len(process_records)}条记录:") for idx, record in enumerate(process_records, 1): print(f"第{idx}条:{record}") # -------------------------- # 写回剩余记录(覆盖原文件) with open(csv_file, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(headers) writer.writerows(leftover_records) print(f"处理完成,剩余{len(leftover_records)}条记录") if __name__ == "__main__": # 替换成你的CSV文件路径 process_batch("your_data.csv")
定时任务配置
Linux/macOS(Cron)
- 执行
crontab -e打开定时任务编辑 - 添加以下规则,实现每小时整点执行:
0 * * * * /usr/bin/python3 /full/path/to/your_script.py
- 注意替换Python路径和脚本的绝对路径,避免找不到文件
Windows(任务计划程序)
- 打开「任务计划程序」→ 创建基本任务
- 触发器选择「每天」,设置重复任务间隔为1小时,持续时间10小时
- 操作选择「启动程序」,选择Python安装路径下的
python.exe,添加参数为脚本的完整路径
关键注意事项
- 运行脚本时确保CSV文件未被其他程序占用,否则会写入失败
- 脚本已内置备份逻辑,每次运行会自动生成原文件的备份,避免意外数据丢失
- 如果业务处理耗时较长,要控制在1小时内完成,避免下一次运行时出现文件冲突
内容的提问来源于stack exchange,提问作者Jagadeesh Kumar
相关产品推荐
相关产品推荐

