python: модуль wget скачивает файл без расширения - PullRequest
0 голосов
/ 30 марта 2020

Я пишу небольшой python код для загрузки файла по ссылке и получения исходного имени файла и его расширения. Но я натолкнулся на одну такую ​​ссылку, по которой python загружает файл, но он не имеет расширения, тогда как файл имеет расширение .txt при загрузке с помощью браузера.

Ниже приведен код, который я пытаюсь:

from urllib.request import urlopen
from urllib.parse import unquote
import wget

filePath = 'D:\\folder_path'
followLink = 'http://example.com/Reports/Download/c4feb46c-8758-4266-bec6-12358'
response = urlopen(followLink)
if response.code == 200:
    print('Follow Link(response url) :' + response.url)
    print('\n')
    unquote_url = unquote(response.url)
    file_name = wget.detect_filename(response.url).replace('|', '_')
    print('file_name - '+file_name)
    wget.download(response.url,filePa

th)

Переменная file_name в приведенном выше коде просто дает ' c4feb46 c -8758-4266-bec6-12358 'в качестве имени файла. Где я хочу скачать его как c4feb46 c -8758-4266-bec6-12358.txt.

Я также пытался прочитать имя файла из заголовка, т.е. response.info (). Но не могу получить правильное имя файла.

Любой может помочь мне с этим. Я застрял в своей работе. Заранее спасибо.

1 Ответ

0 голосов
/ 30 марта 2020

Wget получает имя файла из самого URL. Например, если ваш URL был https://someurl.com/filename.pdf, он сохраняется как filename.pdf. Если это было https://someurl.com/filename, оно сохраняется как filename. Так как wget.download возвращает имя загруженного файла, вы можете переименовать его в любое расширение, которое вам нужно, с помощью os.rename(filename, filename+'.<extension>').

...