Ситуация:
Я пытаюсь закодировать программу автоматического загрузки и загрузки файлов ftp. Он будет перебирать мои файлы и автоматически загружать новые файлы. FTP-сервер встроен в мой Wi-Fi-роутер. Я включил ftp-сервер в свою файловую систему Ubuntu, и все работает нормально (я могу получить доступ ко всему). Домашний сайт похож на семейные папки и мою собственную папку.
Теперь моя проблема:
До сих пор я мог подключиться к серверу и перейти в свой каталог и перечислить папки. Но если я хочу перейти из этого каталога, например. C++ (это папка внутри моего каталога), я получу сообщение об ошибке «Отказано в доступе». Учетная запись пользователя, используемая для входа в систему, такая же, как и при включении моей файловой системы.
Код питона 3:
from ftplib import FTP_TLS
class ftp_client():
def __init__(self, host, unandpw):
self.host = host
self.logindata = unandpw #should be a touple
self.ftp = FTP_TLS(self.host)
self.ftp.login(self.logindata[0], self.logindata[1])
self.ftp.prot_p()
def scan(self):
self.ftp.cwd("/" + self.logindata[0] + "/")
self.listoffiles = self.ftp.nlst()
print("list of files: " + str(self.listoffiles))
for file in self.listoffiles:
self.ftp.cwd("/" + str(file) + "/")
self.listoffilesinfiles = self.ftp.nlst()
print(self.listoffilesinfiles)
self.ftp.cwd("/" + self.logindata[0] + "/")
Я вызываю его через внешний основной файл...
Вывод консоли:
list of files: ['C++', 'Documents', 'Pictures', 'Python', 'School',
'share', 'Videos']
Traceback (most recent call last):
File "main.py", line 5, in <module>
ftp.scan()
File "/home/simon/Python/autoserversync/client.py", line 18, in scan
self.ftp.cwd("/" + str(file) + "/")
File "/usr/lib/python3.5/ftplib.py", line 630, in cwd
return self.voidcmd(cmd)
File "/usr/lib/python3.5/ftplib.py", line 277, in voidcmd
return self.voidresp()
File "/usr/lib/python3.5/ftplib.py", line 250, in voidresp
resp = self.getresp()
File "/usr/lib/python3.5/ftplib.py", line 245, in getresp
raise error_perm(resp)
ftplib.error_perm: 550 /C++/: Permission denied.
Теперь мой вопрос (очевидно): как я могу это исправить?
self.ftp.cwd("/" + str(file) + "/")
наself.ftp.cwd(str(file))
- person Soloritur   schedule 31.03.2017