在python中使用Popen的输入重定向

时间:2015-01-24 12:01:39

标签: python batch-file redirect popen wine

我需要在python中的Popen调用中使用stream redirectiton来使用bat文件和wine。我需要这样做:

wine32 cmd  < file.bat

当我从终端手动运行它时,它工作,但是当我尝试从python中调用它时:

proc = Popen('wine32 cmd < file.bat',stdout = PIPE)

我收到错误:没有这样的文件或目录

如何管理?

由于

2 个答案:

答案 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()