2016-03-22 2 views
-2

Я пытаюсь загрузить файл с помощью Python (2.7), используя код ниже - Но почему я получаю пустой файл? Может кто-нибудь указать мне на «утечку» - что мне не хватает?Python Загрузите файлы, но они пустые?

Как получить исходный файл с текстом внутри?

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

Поскольку вы открываете файл и затем немедленно закрыть его. Вы имели в виду написать некоторые данные между ними? –

+0

есть. Я хочу данные между как реализовать его? google search - no love –

+0

Все, что вам нужно сделать, это найти файл _python download file_, и есть * загрузок * примеров. Разве это не будет проще, чем задать вопрос о переполнении стека? – barny

ответ

1

Ваш текущий код:

  1. фактически никогда не посылать запрос HTTP; Request() просто строит запрос, urlopen() действительно отправляет его;
  2. никогда ничего не записывал в файл с f.write(), вы просто открываете файл и немедленно закрываете его.

Полный пример может выглядеть следующим образом:

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

благодаря всем вы комментируете и отвечаете/Надеюсь, это улучшит мои навыки Google –

Смежные вопросы