在需要用户输入的python中运行.bat文件

时间:2019-01-07 14:24:35

标签: python batch-file

我正在尝试从python脚本中的.bat文件中获取输出,如果我在.bat文件中硬编码一个变量值,则代码可以正常工作,但是我希望该值是动态的。  这是我用来执行外部文件的代码。

command = 'C:/this/this.bat'
p = subprocess.Popen(command, universal_newlines=True,
shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)

text = p.stdout.read()
retcode = p.wait()

文件this.bat需要用户输入,但是我不确定如何在python脚本中提供它,例如来自变量。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我已经处理过类似的事情。我解决的方法是提示用户输入python中的值。然后使用子进程将这些值传递到.bat文件中。

command = [shutil.which('C:/this/this.bat') ,sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5]]
subprocess.Popen(command).wait()

这假定您可以将.bat文件更改为采用参数而不是提示。