The script:
import os
from getpass import getpass #nao ecoa o que digita na tela!
from ftplib import FTP
# Variavél que determina se devemos usar o modo ativo
# para FTP
nonpassive = False
# Nome do arquivo a ser baixado
nome_arquivo = 'README.html'
# Nome do diretório a ser acessado
dir_nome = 'debian'
# Nome do site a ser acessado, pode ser um domínio ou
# endereço de IP
site_nome = 'ftp.debian.org'
# Poderíamos pegar um usuário e senha para conectar
# no servidor
# usuario_info = ('lutz', getpass('Senha?'))
usuario_info = []
# Iniciamos a conexão
print('Conectando...')
# Criamos a conexão com o servidor do tipo FTP
# através do objeto FTP que recebe o endereço do
# servidor como argumento
conexão = FTP(site_nome)
# Fazemos o login com as informações do usuário
# Poderíamos utilizar o login sem nenhum argumento
# e desta forma estaríamos entrando no servidor
# anonimamente
conexão.login(*usuario_info)
# Acessamos um determinado diretório
conexão.cwd(dir_nome)
# Podemos listar os conteúdos do diretório corrente
# utilizando o método retrlines e passando para ele
# o comando LIST
print(conexão.retrlines('LIST'))
# Se devemos acessar os arquivos no modo passivo
# ou no modo ativo
if nonpassive:
conexão.set_pasv(False)
# Iniciamos o download do arquivo
print('Baixando...')
# Abrimos um novo arquivo para armazenar as informações dos
# arquivos que estamos baixando
with open(nome_arquivo, 'wb') as arquivo_local:
# Armazena informações do arquivo original no arquivo local
# Colocamos a string 'RETR ' que indica o comando de download
# para o FTP
# retrbinary indica que estamos baixando o arquivo no modo
# binário, poderíamos baixar o arquivo usando retrlines que baixa
# o arquivo em ASCII
conexão.retrbinary('RETR ' + nome_arquivo, arquivo_local.write, 1024)
# Fechamos a conexão
conexão.quit()
# Perguntamos se o usuário deseja abrir o arquivo, e se
# a reposta for sim nós o abrimos
if input('Abre Arquivo?').lower().startswith('s'):
from PP4E.System.Media.playfile import playfile
playfile(nome_arquivo)
ftp.debian.org is accessible by browser! I am using Backbox Linux 5.1 x64 When I run the script, I get:
O SError: [Errno 101] Network is unreachable
Any ideas how to solve it?