我需要使用python脚本中的C_program
运行外部subprocess
。
以下是棘手的部分:
CTRL+C
C_program
的输出应打印到屏幕上,因此stdout
应通过管道传送到subprocess
。这是我尝试过的:
try:
proc = subprocess.Popen(c_program, shell=True, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
#needs sudo password to run this program
proc.communicate(getpass.getpass())
except KeyboardInterrupt:
print "you stopped c_program, script will now go on..."
#do other things
不幸的是,这将导致两个我似乎无法解决的问题:
CTRL+C
时按c_program
将绝对不做任何事情(不仅不会停止c_program
甚至python脚本本身的执行,它也会被忽略。 ..)ls -l
将不会显示在屏幕,但是,按Enter键后,命令的输出将打印到屏幕上)我在Ubuntu上使用Python 2.7
请帮助:)