【发布时间】:2018-02-15 13:06:07
【问题描述】:
我有一个 python 文件,它接受一些输入并根据这些输入打印输出。我试图在另一个脚本中执行这个脚本。我需要做的就是向这个文件发送一些参数并在这个脚本中获取输出。
我需要执行的脚本:
while True:
print("Sabah 1")
print("Oglen 2")
print("Aksam 3")
print("Gece 4")
print("---------")
secim = raw_input("Gun icerisindeki zaman dilimini giriniz")
isim = raw_input("Isminizi giriniz.")
if (secim=='1') :
print("Gunaydin"+isim)
elif (secim == '2'):
print("Tunaydin"+isim)
elif (secim == '3'):
print("iyi aksamlar"+isim)
elif (secim == '4'):
print("Iyi geceler"+isim)
else:
print("Program sonlandiriliyor")
break
应该执行上述脚本的脚本:
import subprocess, threading, time
can_break = False
def run():
args = ['python','odev2.py','arg1','arg2']
popen = subprocess.Popen(args,shell=False,stdout=subprocess.PIPE)
while not can_break:
print(popen.stdout.readline())
t = threading.Thread(target=run)
try:
t.start()
while True:
print('Main Thread.... ')
time.sleep(1)
except KeyboardInterrupt:
can_break_break = True
问题是第二个脚本的输出不断打印“主线程...”我无法读取任何输出。
谢谢。
【问题讨论】:
标签: python subprocess stdout execute