一 概念
众所周知,python中的获取键盘输入,input函数是没办法用在子程序的,这就限制了它的用途。想要在子程序中获取键盘输入。唯有
fn=sys.stdin.fileno函数了。
二 实例解析
在主进程中敲写代码fn=sys.stdin.fileno(),然后将获取到的文件描述符fn传入子进程,子进程敲写代码sys.stdin = os.fdopen(fn),
然后就可以正常使用sys.stdin.readline()获取键盘输入了。
下面给出一个例子:
import os import sys from multiprocessing import Process def test_input(fn): sys.stdin = os.fdopen(fn) while True: #info = sys.stdin.readline() info = int(sys.stdin.readline().strip('\n')) print("start print info!") print(info) if info == 12: print("equel is 1") if __name__ == "__main__": print("start progress!") fn = sys.stdin.fileno() Process(target=test_input, args=(fn, )).start()
结果:
start progress! 12 start print info! 12 equel is 1 ^Z
三 总结
这里注意输入的值,想要转成int,还需要一个强制转换函数。
标签:info,start,Python,stdin,键盘输入,sys,获取,print,fn From: https://www.cnblogs.com/dylancao/p/17785474.html