一 概念
众所周知,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,还需要一个强制转换函数。
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |