2016-03-22 7 views
-2

Ich versuche, Datei mit Python (2.7) mit Code unten herunterladen - Aber warum bekomme ich leere Datei? Kann mir jemand das "Leck" zeigen - was fehlt mir?Python Dateien herunterladen, aber sie sind leer?

Wie bekomme ich eine Originaldatei mit Text?

import urllib2 

url = 'https://www.dropbox.com/s/splz3vk9pl1tbgz/test.txt?dl=0' 
user_agent = 'Mozilla 5.0 (Windows 7; Win64; x64)' 
file_name = "test.txt" 
u = urllib2.Request(url, headers = {'User-Agent' : user_agent}) 
f = open(file_name, 'wb') 
f.close() 
+5

Weil Sie eine Datei öffnen und dann sofort schließen. Hast du vor, einige Daten dazwischen zu schreiben? –

+0

ja. Ich möchte Daten zwischen , wie man es implementieren? Google-Suche - keine Liebe –

+0

Alles, was Sie tun müssen, ist die Suche nach _python download file_ und es gibt * lädt * Beispiele. Wäre das nicht einfacher als eine Frage zu Stack Overflow zu stellen? – barny

Antwort

1

Ihr aktueller Code ist:

  1. eigentlich nie die HTTP-Anforderung aussendet; Request() erstellt nur eine Anfrage, urlopen() sendet es tatsächlich;
  2. nie tatsächlich etwas in die Datei mit f.write() schreiben, Sie öffnen nur eine Datei und schließen sofort.

Ein vollständiges Beispiel könnte wie folgt aussehen:

import urllib2 

url = 'https://www.dropbox.com/s/splz3vk9pl1tbgz/test.txt?dl=0' 
user_agent = 'Mozilla 5.0 (Windows 7; Win64; x64)' 
file_name = "test.txt" 
u = urllib2.Request(url, headers = {'User-Agent' : user_agent}) 

# Actually make the request 
req = urllib2.urlopen(u) 

f = open(file_name, 'wb') 

# Read data from the request, and write it to the file 
f.write(req.read()) 

f.close() 
+0

danke an alle für Sie kommentieren und antworten/Ich hoffe, das verbessert meine Google-Fähigkeiten –