我正在尝试从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脚本中提供它,例如来自变量。谢谢您的帮助。

最佳答案

我已经处理过类似的问题。我解决的方法是提示用户输入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文件更改为采用参数而不是提示。

关于python - 在需要用户输入的python中运行.bat文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54076194/

10-13 08:12