Dateieinlesung während des Downloads

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Horst73
User
Beiträge: 15
Registriert: Dienstag 5. Juni 2018, 14:08

ok, zu guter letzt hätte ich och eine Frage ;)

Wenn ich zB sowas habe, dann plottet der mir alles in die selbe Zeile aber nebeneinander. Ich möchte, dass sich auf dem Bildschirm nur die Prozentzahl ändert. Wie kann ich das abwandeln?

Hab da schon viel gesehen mit dem sys modul. Aber alles was ich bisher probiert hatte führte immer dazu, dass jede Menge Text auf dem Bildschirm erschien...

Code: Alles auswählen

import time

for i in range(100):
    time.sleep(0.1)
    print('Downloading File FooFile.txt [%d% %]\r'%i, end="")
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

wie rufst Du denn das Programm auf? IDLE kann z.B. kein '\r'.
Horst73
User
Beiträge: 15
Registriert: Dienstag 5. Juni 2018, 14:08

Also aktuell unter windows...

Gedacht sein soll es aber für Linux...
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

die Windows-Konsole kann mit \r umgehen. Linux-Terminal sowieso.
Horst73
User
Beiträge: 15
Registriert: Dienstag 5. Juni 2018, 14:08

so, ich hab den fehler gefunden xD
Wie bekomm ich jetzt nur das % dort weg? Will das ohne das Zeichen verwenden...

Wie scho gesagt, man darf es nicht aus IDLE heraus starten... Sondern per doppelklick...

Nachtrag:
so ist man es los:

print("Text: %d text2" % zahler, end='\r')
Horst73
User
Beiträge: 15
Registriert: Dienstag 5. Juni 2018, 14:08

An dieser Stelle möchte ich mich herzlich für die tolle Hilfe bedanken. Dieses spezeille Projekt ist erfolgreich abgeschlossen.

Ich werde mich aber in Zukunft wahrscheinlich noch häufiger an euch wenden. Vielen Dank für eure Hilfe!!!!

Theman kann geschlossen werden...
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Geht auch, musst nur vorher die Größe wissen, damit du einen Fortschritt berechnen kannst.
Sofern du aber was anderes in der Konsole ausgibst, zerreißt es dir den Fortschrittsbalken.


Ich nutze manchmal progressbar2

Code: Alles auswählen

with requests.get('https://google.de', stream=True) as r:
    position = 0
    if 'Content-Length' in r.headers:
        size = int(r.headers['Content-Length'])
        #print(size)
        #print(r.headers)
        pbar = progressbar.ProgressBar(max_value=size, max_error=False)
        # Bei Heise ist der Content länger, als im Header angegeben, deswegen max_error=False
        pbar.init()
    else: # wenn keine Informationen über die Größe vorhanden sind
        pbar = progressbar.ProgressBar()
        pbar.init()
    for line in r.iter_lines():
        position += len(line) # position updaten
        time.sleep(0.2) # hier irgendwas machen, aber bloß nichts in der Konsole ausgeben.
        pbar.update(position) # progressbar updaten
    pbar.finish()

sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten