0

読み込みに時間がかかるので、このスクリプトに一種のプログレスバーを挿入できるようにしたいと思います。

csvReader = csv.reader(open(fo, 'rb'), delimiter=',')
csvList = list(csvReader)
#print len(csvList)
#return
count = 1

for row in csvList[:50000]:
    if count != 1:
        cur.execute(sql2, [row[0], row[2], row[9], row[11], row[18], row[25], row[27], row[15], row[22]])
    count +=1

cnn.close()
4

2 に答える 2

1

csvデータをメモリにロードしているので、その長さは...

# untested
from itertools import count
rows = len(csvList)
pctn = rows // 100
perc = count()
for rowno, row in enumerate(csvList):
    if rowno % pctn == 0:
        print '{}%'.format(next(perc))

ちなみに、Pythonでデータを再フォーマットし、DBのインポート/バルクアップロードメカニズムを使用することを検討する価値があるかもしれません。

于 2012-06-29T16:17:22.450 に答える
0

ロードに時間がかかるので、このスクリプトに一種のプログレスバーを挿入できるようにしたい

Pythonにはプログレスバーパッケージがありますhttp://code.google.com/p/python-progressbar/

インストールすると、これが使用方法になります。

from progressbar import  Bar, ETA, Percentage, ProgressBar, RotatingMarker

csvReader = csv.reader(open(fo, 'rb'), delimiter=',')
csvList = list(csvReader)
#print len(csvList)
#return
count = 1
widgets = ['Parsing CSV: ', Percentage(), ' ', Bar(marker = RotatingMarker()), ' ', ETA()]
pbar = ProgressBar(widgets = widgets, maxval = 50000).start()

for index, row in enumerate(csvList[:50000]):
    if count != 1:
        cur.execute(sql2, [row[0], row[2], row[9], row[11], row[18], row[25], row[27], row[15], row[22]])
    count +=1
    pbar.update(index)

pbar.finish()
cnn.close()

maxvalとをいじって更新の速度を変更できますupdate

于 2012-06-29T19:04:23.823 に答える