Вытащить номер из текстового файла - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь прочитать в текстовом файле, который имеет много строк, и в каждой строке будет три числа, которые мне нужно извлечь.Текстовый файл выглядит примерно так:

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()

Iзатем можно просто разделить каждую строку на '_', что также достаточно просто:

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 голосов
/ 25 октября 2018

вы можете сделать что-то вроде этого:

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)
0 голосов
/ 25 октября 2018
import re
print(re.findall(r'\d+', 'data/data_xrotate30_yrotate40_zrotate_50'))

и результат

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