我有一个文本文件,我必须从中提取一个数字,该数字位于名为“width:”的行中,就像:width: 3432
现在我正在尝试:
import re
file = open('abc.txt', 'r')
lines = file.readlines()
WIDTH=lines[10]
numbers = re.findall(r"[-+]?\d*\.\d+|\d+", WIDTH)
print(numbers)
它返回['3432']。如何在 python 中将其保存为 int 变量,以获得 3432?
答案1
尝试awk
&tr
awk -F"[][]" '{print $2}' file
或者
grep
grep -Po "(?<=\[).[0-9].*?(?=\])" file
或者
在python
#!/bin/python
import re
str = open('file.txt', 'r').read()
m = re.search(r"\[([A-Za-z0-9_]+)\]", str)
print m.group(1)
答案2
根据您对要执行的操作的描述,您不需要为此使用正则表达式。你可以只使用Pythonstr.startswith
来过滤你不关心的行,然后使用方法str.split
来获取你感兴趣的部分,将值传递给int()
构造函数,将字符串转换为整数:
for line in open('abc.txt').readlines():
if line.startswith('width:'):
number = int(line.split()[-1])
print(number)