2013-11-19 19 views
1

Я пытаюсь выполнить команду в python и прочитать ее вывод в командной строке в окнах.Python read windows Выход из командной строки

Я написал следующий код до сих пор:

def build(): 
    command = "cobuild archive" 
    print "Executing build" 
    pipe = Popen(command,stdout=PIPE,stderr=PIPE) 
    while True:  
     line = pipe.stdout.readline() 
     if line: 
      print line 

Я хочу, чтобы выполнить команду архив COBUILD в командной строке и прочитать его вывод. Однако приведенный выше код дает мне эту ошибку.

File "E:\scripts\utils\build.py", line 33, in build 
    pipe = Popen(command,stdout=PIPE,stderr=PIPE) 
File "C:\Python27\lib\subprocess.py", line 679, in __init__ 
    errread, errwrite) 
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 
+1

Вам необходимо отстудить код – Mark

+0

Что произойдет, если вы введете эту команду в оболочку? – JadedTuna

ответ

2

Следующий код работал. Мне нужно было передать shell = True для аргументов

def build():  
command = "cobuild archive" 
pipe = Popen(command,shell=True,stdout=PIPE,stderr=PIPE)  

while True:   
    line = pipe.stdout.readline() 
    if line:    
     print line 
    if not line: 
     break 
1

WindowsError: [Error 2] The system cannot find the file specified

Эта ошибка говорит о том, что subprocess модуль не может найти ваш executable(.exe)

здесь "cobuild archive"

Предположим, если исполняемый на этом пути: "C:\Users\..\Desktop", в таком случае, ,

import os 

os.chdir(r"C:\Users\..\Desktop") 

, а затем использовать свой subprocess

+0

Использование output = commands.getstatusoutput (cmd) дает мне (1, «'{' не распознается как внутренняя или внешняя команда, \ noperable program или командный файл.") – user3010197

+0

Также архив сборных файлов cbuild isn ' t. – user3010197

+0

- это ваш архив 'cobuild' является исполняемым?, Чтобы проверить, что эта попытка запускается из командной строки' (в том же каталоге), если она все еще бросает ошибку, проблема с вашим исполняемым файлом !!! –

1

Вы не внесете свой код с правильными углублениями, пожалуйста? Они имеют большой эффект в python - другой способ сделать это:

import commands 
# the command to execute 
cmd = "cobuild archive" 
# execute and get stdout 
output = commands.getstatusoutput(cmd) 
# do something with output 
# ... 
+0

Проблема не в том, что консоль читала, но само выполнение –

+0

Пожалуйста, напишите комментарии как «Не возражаете ли вы отправить свой код с правильными углублениями?» как комментарий, или просто отредактируйте оригинальный пост - спасибо! –

Смежные вопросы