python子进程下的bat脚本丢失了写入文件的能力

时间:2016-07-05 13:34:17

标签: python windows python-2.7 subprocess

我正在学习使用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提示再次变为交互式。所以我有一个更基本的问题:我看不到来自通话的任何错误。

0 个答案:

没有答案