OVH Cloud OVH Cloud

Obtenir la taille d'un fichier en cours d'écritue

13 réponses
Avatar
Vincent M
Bonjour,

je souhaite obtenir la taille d'un fichier en cours d'écriture sur DD à
partir de urllib.urlretrieve.

Peut-on le faire et comment ? (je suis sous windows)

Merci

Vincent

3 réponses

1 2
Avatar
Encolpe Degoute
On Tue, 03 Jan 2006 11:53:54 -0800, Hexade wrote:


Ne serait-il pas plus simple de faire un os.path.getsize ?



Bah, d'après moi il faut voir comment wget et Cie s'en sortent et porter
le tout en Python.


wget n'est pas toujours capable de retrouver la longueur d'un fichier...
surtout si celui-ci est présenté comme un flux.

--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales


Avatar
R12y
Ne serait-il pas plus simple de faire un os.path.getsize ?
Bah, d'après moi il faut voir comment wget et Cie s'en sortent et porter

le tout en Python.
wget n'est pas toujours capable de retrouver la longueur d'un fichier...

surtout si celui-ci est présenté comme un flux.


Oui bon... un flux c'est un flux...
De toutes façons, les en-têtes sont censées déclarer que c'est un flux
non? et puis dans dans le fond, chercher une bare de progression pour un
flux,...

--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath‘&products_idE6



Avatar
Vincent M
Bonjour,

Après avoir explorer plusieurs pistes, j'ai réussi à connaître le débit
du téléchargement d'un fichier sur internet en utilisant le "reporthook"
de la fonction urlretrieve.

Voici le code qui permet de télécharger un fichier avec la progression
dans une wxGauge (WxPython sous Windows):


def telechargement(self,logiciel,urllogiciel,fichier) :
def vitesse(compteur,taillebloc,tailletotale):

self.gauge1.SetValue((compteur*taillebloc*100)/tailletotale)

self.staticTextTelechargement.SetLabel('Téléchargement de
'+logiciel+' en cours')

urllib.urlretrieve(urllogiciel, fichier, reporthook=vitesse)


Je débute alors n'hésitez pas si vous trouvez le code moche.

Vincent
1 2