Gå til innhold

Utskrift av tekst og filstørrelse.


Anbefalte innlegg

På en kommandolinje ftp klient får man gjerne fram informasjon om hastighet o.l rett under kommandolinjen ala dette:

lftp ftp.uit.no:/pub/linux/rocks/rocks-mirror/rocks-4.2.1> get viz-4.2.1-0.i386.disk1.iso 
`viz-4.2.1-0.i386.disk1.iso' at 4457408 (1%) 106.2K/s eta:47m [Receiving data]

 

Er det en enkel måte å gjøre dette i python? Nå tenker jeg kun på å oppdatere valgfri tekst rett under kommandolinjen, uten å skrive nylinje, nylinje o.s.v nedover konsollet.

 

Å bruke kordinater vil vel ikke fungere, fordi man på forhånd ikke vet hvor kommandolinjen befinner seg.

 

Ørjan...

Endret av Orjanp
Lenke til kommentar
Videoannonse
Annonse

Hei :)

 

Det bør vel forklare det meste:

import sys, time

sys.stdout.write("Linje med masse informasjon")
time.sleep(2)
sys.stdout.write("\rOppdatert linje med masse informasjon")

i = 0
sys.stdout.write("\nFra 0 til 100 prosent...")
while i <= 100:
  if i == 0:
     sys.stdout.write("\n")
  sys.stdout.write("\r" + str(i) + "%")
  i+=1
  time.sleep(0.1)

sys.stdout.write("\n")

 

På linux (kanksje windows også?) må du kjøre det: python -u «fil.py»

 

Du kan også bruke "\b" (backspace) til å gå bakover.

Endret av meron
Lenke til kommentar

Takk igjen. Er den os spesifikk, slik at det ikke fungerer i Windows?

 

Blir mye lette spørsmål her innser jeg. Det er iallefall litt aktivitet her da. :)

 

Når jeg overfører en fil, bruker jeg en mottaksbuffer på 1024 bytes. Men hvis jeg legger sammen alle bytsene som er sendt, får jeg ikke en verdi som er like stor som fila jeg overførte. Er det fordi noen av de 1024 bytes er informasjon som er relatert til tcp protokollen?

Hvor mye er dette i så fall?

EDIT: Ser at verdien nesten blir(fila er 3KB mindre enn beregnet) korrekt hvis jeg beregner hos avsender. Men ikke hos mottaker(ca. 60MB for stor). Fila er 171MB.

EDIT2: Verdien hos mottaker variere endel, muligens p.g.a at pakker mistes?

 

En annen ting. La oss si at jeg har.

 

i = 2.12345

 

Hvordan skriver jeg ut verdien med to desimaler? Må jeg bruke decimal funksjonene?

 

EDIT3: Det gjøres slik

 

print "%.3g" %i

 

Ørjan...

Endret av Orjanp
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...