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+)从字符串中提取数字。可能是