gpt4 book ai didi

python - 从 python 1.5.2 中的字符串中提取数字

转载 作者:行者123 更新时间:2023-11-28 17:32:44 27 4
gpt4 key购买 nike

我目前正在使用 Telit 模块 (GT864-py),我正在尝试从使用 AT 命令时收到的返回值/字符串中提取数字。

这是我正在使用的代码示例:

MDM.send('AT#ADC=1,2'+'\r', 5)
pump = MDM.receive(15)
pumpb = int(filter(str.isdigit, pump))

给出响应

#ADC: 10 (This number can range from ~10-150)
OK

现在,我想过滤 ADC 之后的数字,但是,我还没有找到解决方法。

通过在 PythonWin 1.5.2+ 中使用此代码,我得到以下错误:

名称错误:是数字

所以我假设 isdigit 在 Python 1.5.2 中不受支持,对吗?如果是这样,有人知道在#ADC: xxx 之后提取数字的其他方法吗?

最佳答案

Python 1.5.2p2 documentation 可在线获取。实际上,str 或模块 string 中都没有 isdigit


即使在 Python 1.5 中,str 也是一个支持 in 操作的序列,因此您可以:

def isdigit(c):
return c in '0123456789'

pumpb = int(filter(isdigit, pump))

为了更彻底的解析,我会使用正则表达式,而不是模块 re;代码

import re
match = re.search('#ADC:\s*(\d+)', pump)
if match:
number = match.group(1)

这将匹配 #ADC: 后跟任意数量的空格,后跟 1 个或多个数字 [0-9];数字被捕获到 1 组中,如果找到匹配项,则其值将存储到 number 中。

关于python - 从 python 1.5.2 中的字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33213051/

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