Архив метки: ftplib

Python 101: Загрузка файла при помощи ftplib (Пароль)

Есть несколько способов загрузки файла из интернета при помощи Python. Одним из самых популярных способов является подключение к FTP серверу и скачивание файла. Этим мы и сейчас займёмся. Всё, что нам понадобится — стандартная установка Python. В неё включена библиотека ftplib, которой нам вполне хватит.

Скачиваем!

Скачать файл очень просто:
# ftp-ex.py
 
import os
from ftplib import FTP
 
ftp = FTP("www.myWebsite.com", "USERNAME", "PASSWORD")
ftp.login()
ftp.retrlines("LIST")
 
ftp.cwd("folderOne")
ftp.cwd("subFolder") # или ftp.cwd("folderOne/subFolder")
 
listing = []
ftp.retrlines("LIST", listing.append)
words = listing[0].split(None, 8)
filename = words[-1].lstrip()
 
# скачиваем файл
local_filename = os.path.join(r"c:myfolder", filename)
lf = open(local_filename, "wb")
ftp.retrbinary("RETR " + filename, lf.write, 8*1024)
lf.close()
Давайте разбираться. Во-первых, нам надо подключиться к FTP серверу, так что необходимо передать URL сервера, логин и пароль. Если же Вы используете анонимный FTP сервер — то последние два аргумента можно опустить. Команда retrlines(“LIST”) выдаёт листинг папки. Команда cwd изменяет рабочую папку (“change working directory”), которую Вы используете для перехода в нужную для Вас папку. В следующей части показано как достаточно глупым способом получить имя файла. Вы можете использовать os.path.basename для тех же целей. Последняя часть показывает, собственно, как скачать файл. Обратите внимание, что файл открывается в режиме “wb” (двоичная запись). “8*1024″ — размер блоков для загрузки, хотя Python достаточно умён, чтобы выбрать подходящий размер.

Обратите внимание: Эта статья основана на документации Python для модуля ftplib и этот скрипт можно найти в папке с установленным Python: Tools/scripts/ftpmirror.py.

Домашнее чтение

Автор: Ishayahu Lastov