Seite 1 von 1

Probleme mit Progressbar

Verfasst: Freitag 8. Januar 2016, 09:44
von Smuun
Hallo an Alle.

Ich habe ein Problem. Ich habe mir einen Code geschrieben um Dateien anzupassen.
Der sieht so aus:

Code: Alles auswählen

import csv

output = csv.writer(open('/home/test/output.asc', 'wb'))

with open('/home/test/test.asc', 'rb') as in_data:
        for row in data:
            value = float(row[2])
            if value > 1000000:
                row[2] = value - 1000000
                row[2] = round(row[2], 2)
            output.writerow(row)
Das funktioniert soweit auch wunderbar. Dann wollte ich eine ProgressBar einfügen, da die Dateien die ich bearbeite sehr groß sind.
Der Code dafür sieht dann so aus:

Code: Alles auswählen

import csv
import pyprind

output = csv.writer(open('/home/test/output.asc', 'wb'))
     
with open('/home/test/test.asc', 'rb') as in_data:
       data = csv.reader(in_data, delimiter =" ")
       progress_range = len(in_data.readlines())
       progress_bar = pyprind.ProgBar(progress_range)
       for i in range(progress_range): 
           for row in data:
               value = float(row[2])
               if value > 1000000:
                   row[2] = value - 1000000
                   row[2] = round(row[2], 2)
               output.writerow(row)
           progress_bar.update()
Es wird auch die output.asc Datei erstellt aber nichts rein geschrieben.
Könnt ihr mir weiterhelfen? Ich finde einfach meinen Fehler nicht.

Vielen Dank schonmal im Vorraus.

Beste Grüße

Simon

Re: Probleme mit Progressbar

Verfasst: Freitag 8. Januar 2016, 09:57
von BlackJack
Der Fehler ist das Du um die Anzahl der Zeilen in der Datei zu bestimmen, bereits die gesamte Datei liest und damit dann jeder folgende Versuch aus dieser geöffneten und bis zu Ende gelesenen Datei zu lesen nichts liefert.

Da die Datei sowieso in den Arbeitsspeicher passt, denn Du liest sie ja komplett ein, solltest Du das nicht nur zum ermitteln der Anzahl der Zeilen verwenden, sondern dann über die bereits gelesenen Zeilen iterieren statt nochmal über die Datei.

Re: Probleme mit Progressbar

Verfasst: Freitag 8. Januar 2016, 10:13
von Smuun
Super! Vielen Dank.
Da hätte ich auch selbst drauf kommen können :oops: