7
votes

Python et Urllib

J'essaie de télécharger un fichier zip ("tl_2008_01001_edges.zip") à partir d'un fichier FTP Census Site à l'aide de Urllib. Quelle forme est le fichier zip dans quand je l'obtiens et comment puis-je l'enregistrer?

Je suis assez nouveau à Python et ne comprends pas comment fonctionne Urllib.

C'est ma tentative: < / p> xxx

Si je connais la liste des dossiers FTP (ou des comtés dans ce cas), puis-je parcourir le FTP Liste de site à l'aide de la fonction GLOB?

Merci.


0 commentaires

3 Réponses :


3
votes

par The Docs , Urlretrieve met le fichier sur le disque et renvoie un tuple (nom de fichier, en-têtes) . Donc, le fichier est déjà enregistré lorsque urlretrieve retourne.

Vous pouvez ouvrir et lire le fichier zip que vous avez récupéré avec le ZIPFILE module de la bibliothèque standard. glob ne fonctionne pas à l'intérieur des zipfiles, uniquement sur des répertoires normaux de système de fichiers.


1 commentaires

Merci - donc si j'utilise urllib.urlretrieve (" FTP2.Census .gov / geo / tigre / tigre2008 / 01_a Labama / ... "," F: // ") qui l'enregistre à mon F-Drive? En ce qui concerne ma question globale, je n'étais pas très clair; Je me demandais comment je me loge dans une liste de dossiers FTP sur le site, plutôt que dans un fichier zip.



5
votes
import os,urllib2
out=os.path.join("/tmp","test.zip")
url="ftp://ftp2.census.gov/geo/tiger/TIGER2008/01_ALABAMA/01001_Autauga_County/tl_2008_01001_edges.zip"
page=urllib2.urlopen(url)
open(out,"wb").write(page.read())

1 commentaires

Merci - cela explique comment je dois faire sauver l'objet Zipfile, ce qui est très utile



8
votes

Utilisez urllib2.urlopen () Pour les données de fichier zip et listing.

pour traiter les fichiers zip avec le zipfile module, vous pouvez les écrire dans un fichier de disque qui est ensuite transmis au constructeur zipfile.zipfile . Récupération des données est simple à l'aide de Lecture () sur l'objet ressemblant à un fichier renvoyé par urllib2.urlopen () .

récupération répertoires: xxx

ou, scission des noms de répertoires: xxx


1 commentaires

Merci beaucoup - cela explique exactement ce que je dois faire. Je télécharge maintenant quelque chose de quelques centaines de fichiers en utilisant ceci.