在 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
的每个参数都是一个单独的列表元素。
我需要在 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
的每个参数都是一个单独的列表元素。