2015-11-14 2 views
0

У меня есть этот странный форматированный текстовый файл, который я пытаюсь прочитать, и я не знаю, как сказать python, что каждая строка начинается с разделителя.Сплит-строка на пробеле

Строка в текстовом файле выглядит следующим образом:

 3.146 -1.339  .358 29.214 

Файл использует 5 пробелов в качестве разделителя. Как я могу прочитать каждую строку в списке с 4 элементами?

+0

'line.strip(). Расколу()'? – jonrsharpe

ответ

1

Используйте split в сочетании с strip для удаления избытка пробельного:

my_file_data = "  3.146 -1.339  .358 29.214" 
data = my_file_data.strip().split('  ') 
# do stuff with your data 
print(data[0]) 
3

Вы можете прочитать каждую строку в список с 4 элементов, используя следующий:

with open(filename, 'r') as f: 

    # this will read in each row as: 
    # 
    # ['3.146', '-1.339', '.358', '29.214'] 
    # 
    # so `lines` will contain 
    # 
    # [['3.146', '-1.339', '.358', '29.214'], ...] 
    lines = map(str.split, f.readlines()) 

    # or alternatively, as @jez mentioned, it may be more readable to use 
    lines = [ line.split() for line in lines ] 

    # you'll then likely want to convert them to floats 
    # 
    # this will give you: 
    # 
    # [[3.146, -1.339, 0.358, 29.214], ...] 
    data = [ map(float, split_line) for split_line in lines ] 
+0

'readlines()' вернет список. Вы не можете 'split()' список. Вам нужно разбить каждую строку в списке. – jez

+0

А, хорошо поймать. Редактирование. –

+0

для удобства чтения, как насчет 'lines = [line.strip(). Split() для строки в f]' – jez

0

Вот ваш разделитель:

delimiter=' '

Тогда вы просто разделить вашу строку текста, используя разделитель

lineoftext.split(delimiter)

Смежные вопросы