Я использую geonames
файл данных почтового индекса в по этой ссылке .Пример данных из вышеуказанного файла выглядит следующим образом:
IT 67010 Barete Abruzzi AB L'Aquila AQ 42.4501 13.2806 4
IT 67012 Cagnano Amiterno Abruzzi AB L'Aquila AQ 42.4574 13.2279 4
IT 67012 San Giovanni Abruzzi AB L'Aquila AQ 42.4642 13.2584 4
IT 67013 Mascioni Abruzzi AB L'Aquila AQ 42.5282 13.3492 4
IT 67013 Campotosto Abruzzi AB L'Aquila AQ 42.5588 13.368 4
IT 67013 Poggio Cancelli Abruzzi AB L'Aquila AQ 42.5623 13.327 4
IT 67013 Ortolano Abruzzi AB L'Aquila AQ 42.5193 13.4238 4
IT 67014 Capitignano Abruzzi AB L'Aquila AQ 42.5204 13.3012 4
IT 67015 Montereale Abruzzi AB L'Aquila AQ 42.5233 13.2459 4
IT 67015 Marana Di Montereale Abruzzi AB L'Aquila AQ 42.4967 13.2236 4
IT 67015 San Giovanni Paganica Abruzzi AB L'Aquila AQ 42.5057 13.2762 4
IT 67015 Aringo Abruzzi AB L'Aquila AQ 42.5554 13.2671 4
IT 67015 Ville Di Fano Abruzzi AB L'Aquila AQ 42.5248 13.1864 4
IT 67015 Cesaproba Abruzzi AB L'Aquila AQ 42.4985 13.1864 4
IT 67015 Marana Abruzzi AB L'Aquila AQ 42.4967 13.2236 4
В приведенном выше файле второй раздел в каждой строке (5-значный цифровой код после IT
) - это почтовый индекс.Второе последнее и третье последнее поля в каждой строке (2 числа с плавающей точкой в конце) - это широта и долгота.
Я пытаюсь извлечь эти 3 поля и испытываю некоторые трудности, особенно в части широты и долготы.Вот код, который я написал до сих пор:
zip_code = ''
latitude = ''
longitude = ''
file1 = open("IT.txt", "r")
for line in file1:
line = line.rstrip('\n')
zip_code = line[3:8]
latitude = line[-17:-10]
longitude = line[-9:-2]
print(latitude)
print(longitude)
Ниже приведен пример вывода широты и долготы:
Широта :
42.4501
42.4574
42.4642
42.5282
42.558
42.562
42.5193
42.5204
Долгота
13.2806
13.2279
13.2584
13.3492
13.368
13.327
13.4238
13.3012
Как вы можете, некоторые из широты и долготы не имеют стандартной длины (Большинство широты и долготы имеют 4 цифры после десятичной, но некоторые имеют только3).Это вызывает проблему в правильном форматировании.Как я могу извлечь поля широты и долготы из каждой строки в вышеуказанном файле?