Форум сайта python.su
host = ftputil.FTPHost('ftp.domain.com', 'user', 'password')
names = host.listdir(host.curdir)
for name in names:
if host.path.isfile(name):
host.download(papka, papka, 'b') # remote, local, binary mode
Офлайн
Замените слово “паапка” на слово “файл” и всё что вы сказали будет верным.
Папки этим кодом не скачиваются - только файлы.
Офлайн
А где есть примеры использования ftputil чтобы посмотреть, а то не совсем понятно.
А двух примеров которые в описании мне мало как-то.
Офлайн
Вообще-то документации, а тем более на русском, должно хватить с избытком. Тем более, все методы практически идентичны одноимённым в стандартном модуле os.
Офлайн
import ftputil
import os
host = ftputil.FTPHost('trash.lan-ix.ru', 'anonymous', 'anonymous')
os.chdir('test')
target = str(os.getcwd())
host.chdir('incoming')
host.chdir('VDT')
source = str(host.getcwd())
print source+'->'+target
host.download(source, target, '')
Офлайн
Раскрывайте понятие “не получается”. Что получаете, а чего ждёте?
Офлайн
/incoming/VDT->C:\Python26\testэто распечатка того что получается, ну а то что хочу получит писал немного выше.
Traceback (most recent call last):
File “C:/Python26/ftp.py”, line 10, in <module>
host.download(source, target, '')
File “C:\Python26\lib\ftputil.py”, line 460, in download
self.__copy_file(source, target, mode, self.file, open)
File “C:\Python26\lib\ftputil.py”, line 434, in __copy_file
source = source_open(source, source_mode)
File “C:\Python26\lib\ftputil.py”, line 228, in file
host._file._open(effective_file, mode)
File “C:\Python26\lib\ftp_file.py”, line 132, in _open
self._session.transfercmd, command)
File “C:\Python26\lib\ftp_error.py”, line 173, in _try_with_ioerror
raise FTPIOError(*exc.args)
FTPIOError: 550 Failed to open file.
Debugging info: ftputil 2.4.2, Python 2.6.5 (win32)
Офлайн
Перед закачкой отправьте команду “TYPE I”.
Проверьте правильность путей к файлу на фтп, наличие необходимых для чтения прав.
Офлайн
Как её отправить через питон?
Через обычный ftp отправил…
Команда: TYPE Iна файл есть все права. В общем я туда его и закинул, для тестирования.
Ответ: 200 Switching to Binary mode.
Traceback (most recent call last):
File “C:\Python26\ftp2.py”, line 22, in <module>
host.upload(source, target, '')
File “C:\Python26\lib\ftputil.py”, line 450, in upload
self.__copy_file(source, target, mode, open, self.file)
File “C:\Python26\lib\ftputil.py”, line 434, in __copy_file
source = source_open(source, source_mode)
IOError: Permission denied: ‘C:\\Python26\\test’
Офлайн
Переделал и получилось…
Вот код.
import ftputil
import os
host = ftputil.FTPHost('trash.lan-ix.ru', 'anonymous', 'anonymous')
os.chdir('test')
host.chdir('incoming')
host.chdir('VDT')
names = host.listdir(host.curdir)
for name in names:
if host.path.isfile(name):
host.download(name, name, 'b')
Офлайн