Python 从文本文件中提取数字

Python 从文本文件中提取数字,python,string,extract,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 = o

我试图在一个有很多行的文本文件中读取,每行上都有我需要提取的三个数字。文本文件如下所示:

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()
然后,我可以用“u”分割每一行,这也很简单:

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()]
但这并不奏效

还有其他方法吗

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

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

您可以这样做:

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)
我想您可以使用regex(\d+)从字符串中提取数字。可能是