我正在尝试使用Python的正则表达式提取数字值(100.00和200.00),但是当我调用代码时,它没有产生任何结果... 我使用的是Python 2.7版本。
1)我的文件名为“file100”,需要从中选择值。
# cat file100
Hi this doller 100.00
Hi this is doller 200.00
2) 这是我的Python代码...
# cat count100.py
#!/usr/bin/python
import re
file = open('file100', 'r')
for digit in file.readlines():
myre=re.match('\s\d*\.\d{2}', digit)
if myre:
print myre.group(1)
3) 当我运行这段代码时,它没有返回任何结果,也没有错误提示。
# python count100.py
for digit in file.readlines():
是浪费且延迟处理的(在开始迭代之前,它会将整个文件读入内存)。for digit in file:
迭代而不是读入内容(因此峰值内存基于最大输入行而不是文件大小)。实际上没有使用file.readlines()
的情况;在极少数需要列表行而不是逐行迭代时,list(file)
以更通用/简洁的方式完成相同的结果(它适用于任何非无限迭代器,而不仅仅是具有.readlines()
的类似文件的对象)。 - ShadowRangergroup(1)
,因为你的正则表达式中没有捕获组。我相信我已经简明扼要地解释了为什么你应该只使用group(0)
。 - Russia Must Remove Putin