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