Dateieinlesung während des Downloads
- __blackjack__
- User
- Beiträge: 13003
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Warum nicht?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Ah, ok.
Ja jetzt weiß ich wie du das meinst. Also die Datei wird zeilenweise eingelesen und abgearbeitet. Gibt es denn einen Befehl, mit dem ich vorab die Anzahl der Zeilen in der datei abfragen kann? Dann könnte ich natürlich problemlos den Fortschritt berechnen...
Ich hätte noch eine Frage: Gibt es eine Möglichkeit, die url in einer varriablen zu speichern? Mit sicherheit, denke ich. Kann mir einer die Syntax dafür sagen? Also in etwa so nur als korrekten Code...
Ich bin euch bisher unendlich dankbar, wie ihr mir bisher geholfen habt
Lg Horst
Ja jetzt weiß ich wie du das meinst. Also die Datei wird zeilenweise eingelesen und abgearbeitet. Gibt es denn einen Befehl, mit dem ich vorab die Anzahl der Zeilen in der datei abfragen kann? Dann könnte ich natürlich problemlos den Fortschritt berechnen...
Ich hätte noch eine Frage: Gibt es eine Möglichkeit, die url in einer varriablen zu speichern? Mit sicherheit, denke ich. Kann mir einer die Syntax dafür sagen? Also in etwa so nur als korrekten Code...
Code: Alles auswählen
url="http://mein-server.de/datei.dat
with requests.get('url', stream=True) as r:
Lg Horst
nein, die Anzahl der Zeilen kannst Du nur herausfinden, wenn Du die ganze Datei gelesen hast. Was geht, ist die Größe der Datei in Bytes aus dem Header Content-Length zu lesen, falls der Server sie mitschickt.
Variablen kann man so benutzen, wie man sie immer benutzt, nicht als String.
Variablen kann man so benutzen, wie man sie immer benutzt, nicht als String.
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...
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="")
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')
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')
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...
Ich werde mich aber in Zukunft wahrscheinlich noch häufiger an euch wenden. Vielen Dank für eure Hilfe!!!!
Theman kann geschlossen werden...
- 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
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