Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2010 12:10:31

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

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
Как я понимаю что изначально задаётся host
и names это папки(а возможно и файлы) которые в текущей директории.
Далее если есть папка (возможно файл),то загружаем папку papka с ftp к себе в papka
Подскажите правильно ли я понимаю, а то что-то не получается…



Офлайн

#2 Март 31, 2010 13:35:13

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Замените слово “паапка” на слово “файл” и всё что вы сказали будет верным.
Папки этим кодом не скачиваются - только файлы.

Офлайн

#3 Март 31, 2010 16:44:12

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

А где есть примеры использования ftputil чтобы посмотреть, а то не совсем понятно.
А двух примеров которые в описании мне мало как-то.



Офлайн

#4 Март 31, 2010 17:23:09

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Вообще-то документации, а тем более на русском, должно хватить с избытком. Тем более, все методы практически идентичны одноимённым в стандартном модуле os.

Офлайн

#5 Апрель 1, 2010 17:03:33

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

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, '')
Не знаю можно так вообще или нет, но не получается…
Хотел с FTP скопировать файлы из текущего каталога в текущий каталог на компе.



Офлайн

#6 Апрель 1, 2010 17:17:13

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Раскрывайте понятие “не получается”. Что получаете, а чего ждёте?

Офлайн

#7 Апрель 1, 2010 18:05:14

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

/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)
это распечатка того что получается, ну а то что хочу получит писал немного выше.

О каком файле идёт речь FTPIOError: 550 Failed to open file?
Скопировать файлы из текущей директории FTP в текущую директорию компа.



Офлайн

#8 Апрель 1, 2010 19:12:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Перед закачкой отправьте команду “TYPE I”.
Проверьте правильность путей к файлу на фтп, наличие необходимых для чтения прав.

Офлайн

#9 Апрель 2, 2010 00:39:48

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Как её отправить через питон?
Через обычный ftp отправил…

Команда: TYPE I
Ответ: 200 Switching to Binary mode.
на файл есть все права. В общем я туда его и закинул, для тестирования.
Файл лежит в директории VDT, в которую я и захожу и присваю к переменной source/

Пробовал загружать на ftp.
Пишет
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’



Офлайн

#10 Апрель 2, 2010 01:20:12

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

ftputil - скачивание всех файлов.

Переделал и получилось…
Вот код.

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')



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version