我正在学习使用subprocess
模块。
我试图在http
下运行.bat
脚本。 subprocess
脚本每次通过双击调用都会写入文件,但在从.bat
调用时不会写入同一文件。
它与this question类似,但在我的情况下,我更倾向于调整调用者subprocess
脚本,然后调整被调用者python
脚本。 .bat
就是我要测试的内容。
我的代码如下。为简洁起见改变了路径和名称。
.bat
我需要fill in user input as the .bat
runs,所以(我认为)我需要直接调用import subprocess
p=subprocess.Popen(r"path\foo.bat", shell=True, stdin = subprocess.PIPE, stdout = subprocess.PIPE)
p.communicate(input='\r\n')
而不是使用便利功能。但除了直接调用之外,我认为问题与此无关,因为文件编写应该在Popen
首次需要用户输入之前进行。
发现.bat
来电或communicate
的每个参数都已尝试失败。
如何更改Popen
脚本以提供python
文件写入权限?
明显的安全隐患与我的用例无关,.bat
是可信的。
编辑:在实施Rptk99的建议时,我注意到我可以用任何字符串替换.bat
的路径(字面意思是,我已尝试过.bat
) ,我将获得相同的行为:python提示再次变为交互式。所以我有一个更基本的问题:我看不到来自通话的任何错误。