我需要在python中的Popen调用中使用stream redirectiton来使用bat文件和wine。我需要这样做:
wine32 cmd < file.bat
当我从终端手动运行它时,它工作,但是当我尝试从python中调用它时:
proc = Popen('wine32 cmd < file.bat',stdout = PIPE)
我收到错误:没有这样的文件或目录
如何管理?
由于
答案 0 :(得分:1)
试试这个:
import sys
#...
with open('file.bat', 'r') as infile:
subprocess.Popen(['wine32', 'cmd'],
stdin=infile, stdout=sys.stdout, stderr=sys.stderr)
确保wine32
的每个参数都是一个单独的列表元素。
答案 1 :(得分:0)
也许你可以查看这个帖子.. https://stackoverflow.com/a/5469427/3445802
from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()