在 python 中通过 Popen 使用输入重定向

Using input redirection with Popen in python

我需要在 python 中的 Popen 调用中使用流重定向才能将 bat 文件与 wine 一起使用。我需要做这个:

wine32 cmd  < file.bat

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

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

我收到错误:没有那个文件或目录

如何处理?

谢谢

也许你可以查看此线程..

from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()

试试这个:

import sys

#...

with open('file.bat', 'r') as infile:
    subprocess.Popen(['wine32', 'cmd'], 
        stdin=infile, stdout=sys.stdout, stderr=sys.stderr)

确保 wine32 的每个参数都是一个单独的列表元素。