Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

一 概念

  众所周知,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,还需要一个强制转换函数。

 

posted on   虚生  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2022-10-24 基于ads1299神经信号采集之调试总结和备忘
2022-10-24 ADS1299芯片datasheet 重点解析
2019-10-24 日常用的搜索引擎,怎么使用才能达到四两拨千斤的效果
2018-10-24 numpy中函数shape的用法
2017-10-24 git关于文件权限修改引起的冲突及忽略文件权限的办法
2017-10-24 Introduction to CELP Coding
点击右上角即可分享
微信分享提示