는 다음 코드를파이썬 2.7 및 3.3 서브 프로세스 모듈 차이
from __future__ import print_function
import subprocess
p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.kill()
p.wait()
print(p.stdin.write(b'some'))
을하고 난 파이썬 2.7 파이썬 3.3로 달렸다. 파이썬 2.7에서는 stdin에 쓰려고 할 때 예외가 발생합니다. python 3.3에서는이 코드가 인쇄됩니다. 4. python 2.7 하위 프로세스 모듈과 python 3.3의 차이점은 무엇입니까?
문서 도구 [2.7] (http://docs.python.org/2.7/library/subprocess.html#popen-objects) 및 [3.3] (HTTP : //docs.python .org/3.3/library/subprocess.html # popen-objects)'.stdin.write'보다는'communicate'를 사용하도록 경고합니다 - 차이가 있습니까? – jonrsharpe
Python 2.7에서 어떤 표현식이 던져 졌는지 알면 좋을 것입니다 : – jbaiter
예외는'IOError : [Errno 32] Broken pipe'입니다. 'communicate'를 사용할 때 예외는 발생하지 않지만'stdin.write'를 사용해야합니다. – sinitsynsv