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. P>
C'est ma tentative: < / p> 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? P> Merci. P> P>
3 Réponses :
par The Docs , Vous pouvez ouvrir et lire le fichier zip que vous avez récupéré avec le ZIPFILE module de la bibliothèque standard. Urlretrieve code> met le fichier sur le disque et renvoie un tuple
(nom de fichier, en-têtes) code>. Donc, le fichier est déjà enregistré lorsque
urlretrieve code> retourne. P>
glob code> ne fonctionne pas à l'intérieur des zipfiles, uniquement sur des répertoires normaux de système de fichiers. P>
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.
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())
Merci - cela explique comment je dois faire sauver l'objet Zipfile, ce qui est très utile
Utilisez pour traiter les fichiers zip avec le récupération répertoires: p> ou, scission des noms de répertoires: p> urllib2.urlopen () code> a > Pour les données de fichier zip et em> listing.
zipfile code>
module, vous pouvez les écrire dans un fichier de disque qui est ensuite transmis au constructeur zipfile.zipfile code>.
Récupération des données est simple à l'aide de
Lecture () code> sur l'objet ressemblant à un fichier renvoyé
par
urllib2.urlopen () code>. p>
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.