[英]Extracting a value from a file containing multiple lines
我正在尝试搜索包含'<text> 291 km</text>'
行的字符串,并仅返回291
的值。 当我运行下面的代码时,出现错误-
print m.group(1)
AttributeError: 'NoneType' object has no attribute 'group'
Python初学者在这里!
f = open("sample.txt","r+")
text = f.read()
m = re.search('<text> (.+?)km</text>', text)
print m.group(1)
我认为可能是因为这些词之间存在空格。 我建议您使用\\s*
来匹配零个或多个空格。
>>> s = 'foo <text> 291 km</text> bar'
>>> re.search(r'<text>\s*(\d+)\s*km\s*</text>', s).group(1)
'291'
如果那是文件中实际的单独一行,并且始终以<text>
开头,则可以使用str.startswith和split:
with open("tsample.txt") as f:
for line in f:
if line.startswith( '<text>' ):
print(line.split()[1])
291
无论哪种方式,您都应使用with
来打开文件并逐行读取。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.