首页 > 系统相关 >基于Python的子进程获取键盘输入

基于Python的子进程获取键盘输入

时间:2023-10-24 18:34:20浏览次数:33  
标签:info start Python stdin 键盘输入 sys 获取 print fn

一 概念

  众所周知,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

相关文章

  • python selenium 利用pyautogui+ActionChains 完美解决我的滑块验证登录问题
    在解决滑块验证的时候不知道什么原因明明是滑块已经对上了,代码执行就是会校验不通过,手动时就可以,中间也做利用ActionChains模块减速滑动轨迹的操作,但仍然不行,后面在执行代码中添加了pyautogui模块使鼠标悬停在屏幕中的某个点而不改变ActionChains鼠标的定位后终于每次都能通过了fro......
  • 21.4 Python 使用GeoIP2地图定位
    GeoIP2是一种IP地址定位库,它允许开发人员根据IP地址查找有关位置和地理位置的信息。它使用MaxMind公司的IP地址数据库,并提供一个方便的PythonAPI。GeoIP2可以用于许多不同的应用程序,例如网站分析、广告定位和身份验证。GeoIP2提供了许多不同的信息,例如国家、城市、邮政编码、经纬......
  • Python数据类型
     数据类型有数值型,布尔型和字符串型一、数值型包括int(整型)、float(浮点型)和complex(复数型)等。1.整型Python3.x支持任意大小的整型数。整型数可以表示成十进制、八进制、十六进制和二进制形式。十进制整型常量:数码为0~9,如-135、57232。八进制整型常量:必须以80或8o开头(第1......
  • python引用相对路径
    文件夹ants/bees文件夹与learn_data.py隶属于同一个目录data_process   所以引用相对路径的方式即为:classMyData(Dataset):def__init__(self,root_dir,label_dir):self.root_dir=root_dir#根目录,即hymenoptera_data/trainself.label_......
  • python当前工作目录和当前文件的绝对路径
    当前文件的绝对路径:这个就是文件在硬盘上的真实路径,从盘符一直到文件所在的具体位置。当前工作目录(currentworkingdirectory)是文件系统当前所在的目录,如果命令没有额外指定路径,则默认为当前工作目录。    importos#当前文件的绝对路径print(os.path.abspath(......
  • python 网络编程
    python编程目录python编程一.网络编程socket1.1基于tcp实现网络通讯1.2基于tcp实现远程执行命令1)粘包问题2)自定义协议解决粘包问题3)最终版定义字典解决粘包问题1.3socketserver实现并发1)基于TCP实现2)基于UDP实现一.网络编程socket1.1基于tcp实现网络通讯服务......
  • 关于Python正则式中的r和字符串中的r
     正则表达式也是字符串,但是不是普通的字符串,其中包含了正则转义和字符串转义。正则表达式前边加r是取消了字符串转义,但是正则转义还在。例1和例2的对比中,例2的正则表达式取消了普通字符串转义,但是\n在正则表达式里是匹配换行符。例2和例3的对比中,例3的被匹配对象实际是两个字......
  • windows 在 PowerShell 中,可以使用 `Get-WindowsFeature` 命令来获取 Windows 功能的
    查询:在PowerShell中,可以使用Get-WindowsFeature命令来获取Windows功能的信息,包括已安装和可用的功能。以下是Get-WindowsFeature命令的一些常见参数:-Name:指定要获取的功能的名称。可以使用通配符来匹配多个功能,例如-NameWeb将匹配所有包含"Web"的功能。-Compute......
  • js实现在报表参数界面获取body中控件的值
     要在报表参数界面获取body中控件的值,你可以使用JavaScript来实现。下面是一个详细的介绍:1.DOM(文档对象模型):  -DOM是用于操作HTML文档的API,它允许你通过JavaScript访问和操作文档中的元素。  -在报表参数界面,你可以使用DOM来获取页面上的控件元素。2.获取控件元......
  • python 解析User-Agent
    需求:从User-Agent中获取浏览器信息和操作系统信息使用第三方库ua-parser安装pipinstallua-parser使用fromua_parser.user_agent_parserimportParse#解析user_agentparsed_user_agent=Parse(user_agent)print(parsed_user_agent)返回数据{"string":"Mozill......