我正在尝试读取一个文本文件,该文件有很多行,每行将是我需要提取的三个数字。文本文件如下所示:
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()]
但这没用。
还有其他方法可以做到吗?
答案 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']