1

我想通过一行解析并使用python从中获取一组特定的数字。

字符串看起来像这样:“72732672 bytes available (56004608 bytes used)” 数字可以是任何数值,这使我无法预先定义它。在这种情况下,具体目标是“72732672”。

你们中的任何人对此有解决方案吗?

4

3 回答 3

5

所以你想要字符串中的整数?一种方法是使用正则表达式。但这可以在不使用正则表达式的情况下完成。

>>> line = "72732672 bytes available (56004608 bytes used)" 
>>> [int(word) for word in line.split() if word.isdigit()]
[72732672]

如果您想使用正则表达式 -

>>> import re
>>> 
>>> re.findall(r'\d+', line)
['72732672', '56004608']
于 2013-04-15T07:33:38.083 回答
2

使用re模块:

>>> digits = re.compile(r'[0-9]+')
>>> digits.findall("72732672 bytes available (56004608 bytes used)")
['72732672', '56004608']

您可以使用 int 转换为实际数字:

>>> l = digits.findall("72732672 bytes available (56004608 bytes used)")
>>> l = [int(x) for x in l]
>>> l
[72732672, 56004608]
于 2013-04-15T07:36:47.393 回答
0
>>> import re
>>> text = "72732672 bytes available (56004608 bytes used)"
>>> re.findall(r'\d+', text)
['72732672', '56004608']
于 2013-04-15T07:48:31.933 回答