#!/usr/bin/python # coding: utf8 import urllib import sys import string # Получаем файл со списком станций c сервера weather.rap.ucar.edu sock = urllib.urlopen("http://weather.rap.ucar.edu/surface/stations.txt") list = sock.read() sock.close() # Разбиваем текст на отдельные строки lines = list.split('\n') # Перебираем по очереди все строки for line in lines: # Если длина строки 83 символа, то вырезаем из строки нужные значения if len(line) == 83 : # Индекс станции ICAO (отбрасываем пробелы слева и справа) icao = line[20:24].strip() # Если у данной станции есть индекс ICAO, то считываем остальные параметры if len(icao) == 4 : # Широта (градус) lat = float(line[39:41]) + float(line[42:44])/100 # Долгота (градус) lon = float(line[47:50]) + float(line[51:53])/100 # Высота над уровнем моря (м) elev = float(line[55:59]) # Если после широты стоит символ S, то делаем значение широты отрицательным if line[44:45] == 'S' : lat = -lat # Если после долготы стоит символ W, то делаем значение долготы отрицательным if line[53:54] == 'W' :[code python][/code] lon = -lon # Записываем только станции, находящиеся от 0 до 60 в.д. и от 30 до 90 с.ш. # if (0 < lon < 60 and 30 < lat < 90) : out = "%s\t%.2f\t%.2f\t%.0f" % (icao, lat, lon, elev) file = open('stations.txt', 'w') file.write(out) file.close() lines
Когда я применяю
file = open('stations.txt', 'w')
Если же
file = open('stations.txt', 'a')
то у меня, понятное дело, получается добавление информации при каждом открытии, к уже существующей.