Seite 2 von 2

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 8. Juni 2018, 07:27
von Horst73
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="")

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 8. Juni 2018, 07:55
von Sirius3
wie rufst Du denn das Programm auf? IDLE kann z.B. kein '\r'.

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 8. Juni 2018, 07:59
von Horst73
Also aktuell unter windows...

Gedacht sein soll es aber für Linux...

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 8. Juni 2018, 08:52
von Sirius3
die Windows-Konsole kann mit \r umgehen. Linux-Terminal sowieso.

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 8. Juni 2018, 09:02
von Horst73
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')

Re: Dateieinlesung während des Downloads

Verfasst: Freitag 15. Juni 2018, 16:13
von Horst73
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...

Re: Dateieinlesung während des Downloads

Verfasst: Dienstag 19. Juni 2018, 18:35
von DeaD_EyE
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()