gpt4 book ai didi

Python连续解析控制台输入

转载 作者:太空狗 更新时间:2023-10-30 01:34:21 25 4
gpt4 key购买 nike

我正在编写一个小的 Python 脚本来解析来自 QR 阅读器(系统将其视为键盘)的输入。

目前我正在使用 raw_input() 但此函数等待 EOF/行尾符号以便将接收到的字符串提交给程序。我想知道是否有一种方法可以连续解析输入字符串,而不仅仅是在行尾限制的 block 中。

实践中:- 在 python 中有没有一种方法可以异步和连续地解析控制台输入?- 有没有办法更改 raw_input()(或等效函数)以查找另一个字符,以便将读取的字符串提交到程序中?

最佳答案

看起来您通常是在尝试解决两个问题:

  1. 分块读取输入
  2. 异步解析输入

对于第一部分,它会根据您调用的输入函数的具体情况而有很大差异,但对于标准输入,您可以使用类似

sys.stdin.read(1)

至于异步解析,您可以采用多种方法。 Python 是同步的,因此您必须涉及一些子进程调用。使用 the subprocess library 手动生成函数是一种选择。您还可以使用 Redis 之类的东西或一些轻量级作业队列来弹出输入 block ,并让它们由另一个后台脚本读取和处理。最后,gevent是一个非常流行的基于协程的库,用于生成异步进程。使用 gevent,整个设置看起来像这样:

class QRLoader(object):
def __init__(self):
self.data = []

def add_data(data):
self.data.append(data)

# if self._data constitutes a full QR code
# do something with data
gevent.spawn(parse_async)

def parse_async():
# do something with qr_loader.data

qr_loader = QRLoader()

while True:
data = sys.stdin.read(1)
if data:
qr_loader.add_data(data)

关于Python连续解析控制台输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com