Форум сайта python.su
На разных станциях в разное время может быть или не быть информации. Поэтому список меняется.
Показатели облаков - меняются постоянно…
и как ты алгоритмы придумываешь?
Офлайн
Tenebrasочень нерационально. мой код выполняется за 20 сек с учетом запроса к сети
Что значит КАК?
Офлайн
Ну у меня
execution time 9.25417685509 0.217932939529
Полный список в 3800 он обработал минут за 5 - 7… Не плохо. Но хотелось бы ускорить.
Не научился я писать рациональные и элегантные скрипты…
Офлайн
Tenebrasочень долго. там на сайте csv есть, его проще парсить
Полный список в 3800 он обработал минут за 5 - 7… Не плохо. Но хотелось бы ускорить.
Офлайн
vic57
очень долго. там на сайте csv есть, его проще парсить
Офлайн
vic57
очень долго. там на сайте csv есть, его проще парсить
Офлайн
структура xml -дерево, csv - таблица
csv можно построчно парсить, в питоне встроено
Офлайн
провел эксперимент, все данные загрузились в таблицу за 2.5 сек
Прикреплённый файлы: scr.png (155,7 KБ)
Офлайн
Не осиливаю… Вышенаписанное пока не для моего скудного мозга
Хотел просто разбить CSV на строки и мз каждой, разбив на части, взять по индексу нужное значение.
Что-то не так, а что не пойму.
#!/usr/bin/env python # coding:utf8 import urllib import csv url = 'https://aviationweather.gov/adds/dataserver_current/current/metars.cache.csv' urllib.urlretrieve(url, filename='metar.csv') file = open('metar.csv').readlines() for f in file: s = f.split(',') print s[1]
Отредактировано Tenebras (Март 17, 2017 23:30:21)
Офлайн
чего там осиливать? ты файл посмотри в excel хотя бы. данные с 6 строки начинаются
# coding:utf-8 import urllib import gzip from time import time from PyQt4.Qt import * def get_gz(gz_name): out = [] with gzip.open(gz_name,'rb') as gz: lines = gz.readlines() for line in lines: out.append(line.split(',')) return out class Table(QTableWidget): def __init__(self): QTableWidget.__init__(self) self.setFont(QFont("times",14)) def setData(self,table): cols = len(table[0]) rows = len(table) self.setRowCount(rows) self.setColumnCount(cols) for i in xrange(rows): for j in xrange(cols): item = QTableWidgetItem() item.setText(table[i][j]) self.setItem(i,j,item) def setHeaders(self,lst): out = [] for x,i in enumerate(lst): out.append(str(x) + "\n" + i.strip()) self.setHorizontalHeaderLabels(out) self.resizeColumnsToContents() if __name__ == "__main__": app = QApplication([]) t1 = time() url = 'https://aviationweather.gov/adds/dataserver_current/current/metars.cache.csv.gz' urllib.urlretrieve(url,filename='metar.csv.gz') t2 = time() table = get_gz('metar.csv.gz') t = Table() t.setData(table[6:]) t.setHeaders(table[5]) t.setColumnHidden(0,True) t.resize(900,600) t.move(0,0) t.show() t3 = time() print t2 - t1,t3 - t2,' '.join(table[4]), app.exec_()
Отредактировано vic57 (Март 18, 2017 02:51:28)
Офлайн