Python - использование объекта Popen дважды

У меня нет проблем с созданием объекта Popen и запуском с ним другой программы, заставляя его использовать cmd, где output - это аргументы, которые я отправляю ...

k = subprocess.Popen(output, stdout=PIPE, stdin=PIPE, stderr=PIPE)

но затем я хочу использовать тот же объект Popen для запуска другой команды через ту же командную строку. Я использовал communication (), и это не сработало, также stdout. Теперь я использую stdin.write () вместе с stdout.readline ().

f = open("sample.txt")    
reed = f.read()
f.close()
k.stdin.write(reed)
p="i"
while p.find("0.0)") == -1:
    p = p+k.stdout.readline()
print p

что я должен делать?

ИЗМЕНИТЬ

p = k.communicate(input=reed)[0]

это было единственное, что мне было нужно. Я не знал, что мне нужно использовать «ввод» в общении, я всегда просто использовал общение (тростник). Мне даже не нужен этот старый глупый цикл while.


person user2573815    schedule 11.07.2013    source источник


Ответы (1)


Вы пробовали вместо этого использовать subprocess.call?

http://docs.python.org/2/library/subprocess.html

person user581592    schedule 11.07.2013
comment
Да я только что попробовал. Это не улучшает мою ситуацию. Происходит то, что первая команда выполняется при ее первом создании, а результирующий текст правильно считывается в p и правильно печатается. Проблема в том, что когда (код выше) открывается и сохраняется в переменной второй файл, тогда, когда я пытаюсь использовать этот текст в качестве аргумента той же командной строки, ничего не происходит. Кажется, я не могу повторно вызвать ту же командную строку. - person user2573815; 11.07.2013