如何在Python中保存文本文件中的数字?

如何在Python中保存文本文件中的数字?

我有一个文本文件,我必须从中提取一个数字,该数字位于名为“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

尝试awktr

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)

相关内容