Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 3, 2014 15:48:32

Suliman
Зарегистрирован: 2013-06-18
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с ftputil

try:
    sav_ftp.chdir("/unicorn-bs.com/www/savorsk/")
    print "We are on FTP"
    sav_ftp.upload("D:\\savorsk\\folder1", "/unicorn-bs.com/www/savorsk/")
except OSError:
	print "Error"

Почему-то вылетает ошибка
IOError: [Errno 13] Permission denied: 'D:\\savorsk\\folder1'

Офлайн

#2 Янв. 23, 2015 08:54:04

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Проблема с ftputil

1) Скорее всего Вы пытаетесь выгрузить папку командой для выгрузки файла.
2) Про Permission denied можно уже не говорить.

Для выгрузки папки нужно рекурсивно пробегаться по ней, и выгружать всё по отдельности.
Например так:

import ftplib
import os
server = 'localhost'
username = 'generic_user'
password = 'password'
myFTP = ftplib.FTP(server, username, password)
myPath = r'c:\temp'
def uploadThis(path):
    files = os.listdir(path)
    os.chdir(path)
    for f in files:
        if os.path.isfile(path + r'\{}'.format(f)):
            fh = open(f, 'rb')
            myFTP.storbinary('STOR %s' % f, fh)
            fh.close()
        elif os.path.isdir(path + r'\{}'.format(f)):
            myFTP.mkd(f)
            myFTP.cwd(f)
            uploadThis(path + r'\{}'.format(f))
    myFTP.cwd('..')
    os.chdir('..')
uploadThis(myPath) # now call the recursive function  

Это решение написано здесь спустя пол-года после вашего вопроса. Но лучше поздно, чем никогда.

Также советую почитать про ftputil документацию - en или ru



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Янв. 23, 2015 08:59:05)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version