В вашем коде есть несколько ошибок.
Во-первых, в общем, предпочтительнее использовать with
для открытия файлов до open
. Вы не закрываете свой файловый объект, поэтому ОС считает, что он все еще открыт (используется), пока вы не закроете Python.
Во-вторых, split
, при запуске на строке разбивает на list
строк. Вы хотите убрать запятые из всех таких подстрок, поэтому вам нужно перебрать результирующий list
- не имеет смысла запускать strip
на list
, так как это не строка.
Наконец, повторение текста, считанного из файла таким образом, и переназначение переменной word
не изменит этот текст на месте, а только на то, на что указывает переменная word
, так что вы на самом деле не увидите ничего эффекты.
Пример:
>>> numbers = [1, 2, 3, 4, 5]
>>> for i in numbers:
... i += 1
...
>>> numbers
[1, 2, 3, 4, 5]
Причина в том, что i
указывает на целые числа от 1 до 5 подряд. Когда вы выполняете +=
на нем, то, что вы делаете, это , изменяя то, что i
указывает на , вместо взятия объекта, на который указывает i
, и изменения его .
В качестве аналогии: разница между следованием указателя к дому и покосом газона и перемещением указателя для указания на другой дом.
Попробуйте это:
tweet_path = input("Enter name of tweet file: ")
with open(tweet_path, "r", encoding='utf-8') as f:
coordinates = [line.split()[:2] for line in f]
cleaned_coordinates = [(lat[1:-1], lon) for lat, lon in coordinates]
Действительно , наконец, как примечание: широта и долгота float
, а не int
, и вы можете преобразовать их соответственно, если необходимо.