从文本文件中提取数字

时间:2018-10-25 11:03:08

标签: python string extract

我正在尝试读取一个文本文件,该文件有很多行,每行将是我需要提取的三个数字。文本文件如下所示:

Headerinformation

data/data_xrotate30_yrotate40_zrotate_50
data/data_xrotate31_yrotate49_zrotate2

依此类推。

导入文本文件并阅读各行相对简单:

DataRotations = 'data.txt'

"""Next we open each text file"""

DataRotationsOpen = open(DataRotations, "r")
DataRotationsRead = DataRotationsOpen.readlines()

然后我就可以用同样容易的'_'分隔每一行:

variable = 'data'
for line in ArtificialDataRotationsRead:
    if variable in line:
        currentline = line.split('_')

但是,如果我随后尝试进一步分解数据以提取数字,则会遇到问题。我尝试过:

variable = 'data'
for line in ArtificialDataRotationsRead:
    if variable in line:
        currentline = line.split('_')
        X = re.search(r'\d', currentline[1])  

但这不起作用。

我也尝试过

Number = [int(a) for a in currentline[1] if a.isdigit()]

但这没用。

还有其他方法可以做到吗?

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

s = "data/data_xrotate30_yrotate40_zrotate_50"
s2 = s.split('_')
for s3 in s2:
    t = ''.join([i for i in s3 if i.isdigit()])
    if t:
        print(t)

答案 1 :(得分:0)

import re
print(re.findall(r'\d+', 'data/data_xrotate30_yrotate40_zrotate_50'))

结果是

['30', '40', '50']