如何通过Python逐行运行文本文件中存储的多条python指令
Python逐行执行命令文件解决方案
你可以直接用Python内置的subprocess模块实现该需求,无需安装第三方依赖,具体实现步骤和代码如下:
使用步骤
- 将你所有需要执行的命令逐行存入文本文件,比如命名为
commands.txt,和执行脚本放在同一目录下 - 将下方代码保存为
run_commands.py - 终端执行
python run_commands.py即可自动按顺序执行所有命令
完整可运行代码
import subprocess # 此处修改为你的命令文件实际路径 COMMAND_FILE_PATH = "commands.txt" if __name__ == "__main__": # 读取所有命令行 with open(COMMAND_FILE_PATH, "r", encoding="utf-8") as f: all_commands = f.readlines() for order, cmd_line in enumerate(all_commands, start=1): # 去除首尾空白,跳过空行和#开头的注释行 cmd = cmd_line.strip() if not cmd or cmd.startswith("#"): continue print(f"===== 执行第 {order} 条命令:{cmd} =====") try: # shell=True适配整行完整命令的执行场景,仅在你完全信任命令内容时使用 subprocess.run( cmd, shell=True, check=True, text=True ) print(f"第 {order} 条命令执行成功\n") except subprocess.CalledProcessError as e: print(f"第 {order} 条命令执行失败,错误码:{e.returncode},错误信息:{e.stderr}\n") # 若需要某条命令失败后终止后续所有命令执行,取消注释下方break即可 # break
可选调整说明
- 如果你需要将命令的输出内容保存到变量中后续处理,可以给
subprocess.run添加参数capture_output=True,执行完成后通过result.stdout和result.stderr分别获取标准输出和错误输出 - 如果你的命令文件是GBK编码,将
open函数的encoding参数修改为gbk即可
内容的提问来源于stack exchange,提问作者X_strong
相关产品推荐
相关产品推荐

