Frage

Ich brauche eine wenig Hilfe, um eine TAR-Datei immer von einer Website zum Download bereit. Die Website wird als eine Form eingerichtet, in dem Sie die Datei auswählen, die Sie möchten, und klicken Sie auf Absenden und dann öffnet sich die Download-Fenster nach oben für Sie den Speicherort auszuwählen.

Ich versuche, die gleiche Sache in Code zu tun (so habe ich nicht auf manuell jede Datei auswählen). Bisher habe ich 2.5.2 bekommen Python eine Antwort zurück, aber es ist in einer socket._fileobject und ich bin jetzt nicht sicher, wie das auf meinem Computer in eine Datei zu konvertieren.

Im Folgenden finden Sie Ausgabe der Python-Shell und die Schritte, die ich gemacht habe

Python 2.5.2 on win32

IDLE 1.2.2      
>>> import urllib
>>> import urllib2
>>> url = 'http://website/getdata.php'
>>> values = {'data[]': 'filex.tar'}
>>> data = urllib.urlencode(values)
>>> req = urllib2.Request(url,data)
>>> response = urllib2.urlopen(req)
>>> response
addinfourl at 22250280 whose fp = <socket._fileobject object at 0x01534570
>>> response.fp
socket._fileobject object at 0x01534570
War es hilfreich?

Lösung

Dieses anhängen:

myfile = open('myfile.tar', 'wb')
shutil.copyfileobj(response.fp, myfile)
myfile.close()

response.fp ist ein dateiähnliche Objekt, das Sie aus lesen können, wie eine geöffnete Datei. shutil.copyfileobj() ist eine einfache Funktion, die von einer Datei-ähnliches Objekt liest und schreibt seinen Inhalt in ein anderes.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top