0

我想在 python 文件中运行终端命令。它工作正常,我还可以使用 subprocess.Popen 在 gui 窗口上获取终端消息。

import subprocess
import wx
import os
def main():
    p = subprocess.Popen(['ls'], stdout = subprocess.PIPE)
    text = p.stdout.readlines()
    text = "".join(text)

    wx.MessageBox("file names:\n%s" % text, "info")

if __name__ == '__main__':
    app = wx.PySimpleApp()
    main()

但是当我运行一个终端应该询问一些问题的答案的命令时,我得到了错误?

Traceback (most recent call last): 
    File "to_make_new_project_folder.py", line 19, in <module> main() 
    File "to_make_new_project_folder.py", line 10, in main p = subprocess.Popen(['gr_modtool add -t general square_ff'], stdout = subprocess.PIPE)
    File "/usr/lib/python2.7/subprocess.py", line 711, in init errread, errwrite)
    File "/usr/lib/python2.7/subprocess.py", line 1308, in _execute_child raise child_exception
OSError: [Errno 2] No such file or directory

有人知道如何使用 gui 窗口从终端回答问题吗?

4

2 回答 2

0

您应该尝试传入 stdin=PIPE 以及 popen

于 2013-06-11T19:26:22.307 回答
0

根据您的堆栈跟踪,您收到的错误是OSError: No such file or directory,来自subprocess. 在我看来,Popen找不到您要执行的文件,因此失败了。

于 2013-06-12T01:58:09.633 回答