Путь к загрузке файлов FTP по умолчанию (python) - PullRequest
0 голосов
/ 24 июля 2011

когда я загружаю файл с ftp в python, используя retrbinary, где файлы загружаются по умолчанию. Есть ли способ изменить эту папку по умолчанию? спасибо заранее

1 Ответ

2 голосов
/ 24 июля 2011

Функция retrbinary в библиотеке ftplib принимает функцию обратного вызова, которая вызывается один раз для каждого извлеченного блока данных.Вы сами пишете эту функцию обратного вызова и, следовательно, можете изменить файлы папок, в которые сохраняются файлы.

Пример кода:

#!/usr/bin/env python

import sys
from ftplib import FTP



ftphost, file_to_retrieve, output_path = sys.argv[1:4]

print "Retreiving %(file_to_retrieve)s from FTP host %(ftphost)s, saving to %(output_path)s" % locals()

ftp = FTP(ftphost)
ftp.login()

outfile = None
def data_callback(data):
    global outfile
    if outfile is None:
        outfile = open(output_path, 'w')

    outfile.write(data)

ftp.retrbinary("RETR %s" % file_to_retrieve, data_callback)

if outfile is not None:
    outfile.close()

Чтобы получить ftp://ftp.sunet.se/pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz и сохранить его как /tmp/man-pages.tar.gz,запустите этот код следующим образом:

$ python testftp.py ftp.sunet.se /pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz /tmp/man-pages.tar.gz    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...