Присвоение переменных частям текстового файла - PullRequest
0 голосов
/ 13 ноября 2018

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

[41.298669629999999, -81.915329330000006] 6 2011-08-28 19:02:36 Work needs to fly by ... I'm so excited to see Spy Kids 4 with then love of my life ... ARREIC

Я пытаюсь присвоить различные части этой строки определенным переменным с помощью этого кода:

latitude = 0
longitude = 0
unused1 = 0
unused2 = 0
unused3 = 0
tweetWordList = []
for line in tweetFile:
    line = line.rstrip()
    longitude,latitude,unused1,unused2,unused3,tweetWordList = line.split()

Я пытаюсь получить фрагмент текста из твита в tweetWordList, но получаю сообщение об ошибке, говорящее о том, что слишком много значений для распаковки.Как мне разделить эту строку, чтобы запись попала в список, который я создал?

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

1 Ответ

0 голосов
/ 13 ноября 2018

Это потому, что вы разделяете на пробелы, поэтому весь текст также разбивается на элементы списка. Если форматирование соответствует, я бы предложил разделить на индексы списка:

>>> line = "[41.298669629999999, -81.915329330000006] 6 2011-08-28 19:02:36 Work needs to fly by ... I'm so excited to see Spy Kids 4 with then love of my life ... ARREIC"
>>> splitline = line.split()
>>> longitude = splitline[0].replace('[', '').replace(',', '')
>>> latitude = splitline[1].replace(']', '')
>>> tweetWordList = ' '.join(splitline[5:])

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

>>> import re
>>> latitude, longitude, tweetWordList = re.findall("^\[([\d.]+), ([\d\-.]+)\] [\d] [\d]{4}-[\d]{2}-[\d]{2} [\d]{2}:[\d]{2}:[\d]{2} ([A-Za-z0-9 .']+)", line)[0]

Вам нужно будет поэкспериментировать с шаблоном регулярных выражений, чтобы правильно соответствовать тексту, но в этом суть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...