Форум сайта python.su
0
Т.к. решить проблему описанную в данной теме у меня не получилось, то прошу подсказать мне любой самый простой вариант как скопировать каталог с файлами на FTP. Можно даже дергать сторонние утилиты, главное чтобы они были консольными и портабельными в виде одного exe-шника.
Видимо библиотека глючная – т.к. права доступа на тот каталог у меня есть, однако ничего лучше я не нашел.
Офлайн
2
Можно воспользоваться вот таким вариантом, состряпанным за пол-часа
python 3.3 x86, либы стандартные
from ftplib import FTP import os class FtpUploadFolder(): def __init__(self, server, user, passwd, catalog): self.fcount = 0 self.dcount = 0 self.ftp = FTP(server, user, passwd) self.ftp.cwd(catalog) def uploadOne(self, new_name, path_name): self.ftp.storbinary('STOR ' + new_name, open(path_name, 'rb') ) def uploadDir(self, localdir): localfiles = os.listdir(localdir) for localname in localfiles: localpath = os.path.join(localdir, localname) print('uploading', localpath, 'to', localname) if not os.path.isdir(localpath): self.uploadOne(localname, localpath) self.fcount += 1 else: try: self.ftp.mkd(localname) print('directory created', localname) except: print('directory not created') self.ftp.cwd(localname) self.uploadDir(localpath) self.ftp.cwd('..') self.dcount += 1 print('directory exited') def close(self): self.ftp.quit() print('uploaded files: ', self.fcount) print('uploaded folders: ', self.dcount) if __name__ == '__main__': f = FtpUploadFolder('ftp.test.com', 'user_login', 'user_pass', 'http') # http - папка на сервере, в которую загружаем f.uploadDir('c:\\catalog') # папка, которую загружаем f.close()
Отредактировано bs0d (Сен. 4, 2014 18:29:10)
Офлайн