Python如何无需重复运行脚本 依次执行空目录填充与满目录处理流程
Python脚本优化方案
原有代码的问题
你原来的逻辑将两个功能函数定义在互斥的if-else分支中,且两个分支逻辑只能二选一,因此空目录场景下执行完填充逻辑后,不会自动触发全目录处理流程,只能二次运行脚本。
优化实现思路
将两个功能函数独立定义在条件分支外,先完成空目录的填充逻辑,再统一执行全目录处理,不管初始目录是否存在csv文件,都只需运行一次脚本即可走完完整流程。
优化后代码示例
import os # 填充逻辑:接收用户输入,向目录写入csv文件 def process_user_input(certain_dir): # 此处替换为你原有的填充逻辑代码 # ....code.... return True # 可返回布尔值标识填充是否成功 # 全量处理逻辑:处理目录内所有csv文件 def do_process_on_the_full_directory(certain_dir): # 此处替换为你原有的全量处理逻辑代码 # ....code.... return if __name__ == "__main__": # 替换为你的指定目录路径 certain_dir = "./target_dir" # 检查目录下是否存在csv文件 has_csv = any(fname.endswith('.csv') for fname in os.listdir(certain_dir)) # 空目录先执行填充 if not has_csv: fill_success = process_user_input(certain_dir) # 可选:填充失败则终止流程,避免无文件执行处理逻辑报错 if not fill_success: raise RuntimeError("目录csv文件填充失败,请检查输入后重试") # 统一执行全目录处理逻辑 do_process_on_the_full_directory(certain_dir)
方案优势
- 符合Python编码规范,避免在条件分支内定义函数导致的作用域问题和代码冗余
- 流程逻辑清晰,空目录场景下填充完成后自动执行全量处理,无需二次运行脚本
- 可扩展填充失败的异常处理逻辑,避免后续处理无文件报错
内容的提问来源于stack exchange,提问作者zara kolagar
相关产品推荐
相关产品推荐

