Comment faire pour télécharger un fichier à l'aide de python dans un "intelligentes" de la sorte?

J'ai besoin de télécharger plusieurs fichiers via http en Python.

La façon la plus évidente à faire, c'est seulement à l'aide de urllib2:

import urllib2
u = urllib2.urlopen('http://server.com/file.html')
localFile = open('file.html', 'w')
localFile.write(u.read())
localFile.close()

Mais je vais avoir à traiter avec les Url qui sont méchants, d'une certaine façon, dire comme ceci: http://server.com/!Run.aspx/someoddtext/somemore?id=121&m=pdf. Lors du téléchargement via le navigateur, le fichier a un nom lisible par l'utilisateur, c'est à dire. accounts.pdf.

Est-il un moyen de gérer cela en python, donc je n'ai pas besoin de connaître les noms de fichier et de coder en dur dans mon script?

  • Est le nom de fichier sur le serveur est-il pertinent? Sans doute ces fichiers ont un sens pour vous, alors vous devriez être en mesure de nommer vous-même. Si les noms n'ont pas de sens, venir avec un nombre aléatoire unique de vous identifier (uuid peut-être?)
  • J'aimerais avoir des noms de fichiers lisibles et utiles. Le problème c'est que le script va prendre des Url pour le téléchargement à partir d'un fichier texte, et les Url seront ajoutés et supprimés par un non-technicien.
InformationsquelleAutor kender | 2009-05-14