You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python脚本实现带不同参数的程序串行调用?

解决Python串行执行MSSQL2PostgreSQLPro_Cons.exe的问题

你当前脚本里的start命令会让每个程序在独立新窗口中并行运行,os.system会立即返回而不等待程序执行完毕。要实现串行执行,只需去掉start,或者使用更现代的subprocess模块,以下是具体方案:

方案1:修改os.system命令(简单直接)

去掉命令中的start,os.system会自动阻塞,直到当前程序执行完成后再执行下一行代码:

import os

os.system("MSSQL2PostgreSQLPro_Cons.exe /Session:{}".format(parameter1))
os.system("MSSQL2PostgreSQLPro_Cons.exe /Session:{}".format(parameter2))
os.system("MSSQL2PostgreSQLPro_Cons.exe /Session:{}".format(parameter3))

方案2:使用subprocess模块(推荐,更可控)

subprocess是Python官方推荐替代os.system的模块,支持捕获输出、错误处理等更多功能,默认会阻塞等待程序执行完成:

import subprocess

# 使用format格式化参数
subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", "/Session:{}".format(parameter1)], check=True)
subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", "/Session:{}".format(parameter2)], check=True)
subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", "/Session:{}".format(parameter3)], check=True)

# 或者用更简洁的f-string(Python 3.6及以上版本支持)
# subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", f"/Session:{parameter1}"], check=True)
# subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", f"/Session:{parameter2}"], check=True)
# subprocess.run(["MSSQL2PostgreSQLPro_Cons.exe", f"/Session:{parameter3}"], check=True)

注意事项

  • check=True会在程序执行返回非0状态码(执行失败)时抛出subprocess.CalledProcessError异常,方便捕获处理错误;不需要自动抛异常的话可以去掉该参数。
  • 确保MSSQL2PostgreSQLPro_Cons.exe在脚本当前工作目录下,或者直接指定程序的完整路径(如"C:\\Tools\\MSSQL2PostgreSQLPro_Cons.exe")。

内容的提问来源于stack exchange,提问作者Yang L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:08:12