Проблема с ошибкой ftplib.error_perm: 550 Requested action not taken, file not found or no access.

sawoq

Новичок
Пользователь
Апр 6, 2024
2
0
1
Добрый день всем. Проблема с толи с доступом толи кодировкой никак не могу понять.
Python 3.10.10 / Windows 21H2
Кодировка py-файла 'utf-8'
Python:
import os
import ftplib

ftp = ftplib.FTP(host)
ftp.encoding = 'windows-1251'
ftp.login(user, password)
print(ftp.getwelcome())
ftp.retrlines('LIST')
ftp.cwd('БАЗА')

ftp.close()
print('Disconnected...')
Команда list, либо dir работают при условии выставленной кодировки 'windows-1251'. Показывают список папок. При этом cwd выдаёт ошибку
Python:
Traceback (most recent call last):
  File "D:\ftp.py", line 9, in <module>
    ftp.cwd('БАЗА')
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 625, in cwd
    return self.voidcmd(cmd)
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 286, in voidcmd
    return self.voidresp()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 259, in voidresp
    resp = self.getresp()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 244, in getresp
    resp = self.getmultiline()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 230, in getmultiline
    line = self.getline()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 212, in getline
    line = self.file.readline(self.maxline + 1)
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 27: invalid continuation byte
Если же закоментировать строку
Python:
#ftp.encoding = 'windows-1251'
то ошибка уже другого характера
Python:
Traceback (most recent call last):
  File "D:\ftp.py", line 9, in <module>
    ftp.cwd('БАЗА')
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 625, in cwd
    return self.voidcmd(cmd)
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 286, in voidcmd
    return self.voidresp()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 259, in voidresp
    resp = self.getresp()
  File "C:\Users\АРМ\AppData\Local\Programs\Python\Python310\lib\ftplib.py", line 254, in getresp
    raise error_perm(resp)
ftplib.error_perm: 550 Requested action not taken, file not found or no access.

Доступ к ресурсу свободно осуществляется через FileZilla и через проводник. Переход по папкам и скачивание файлов без проблем.
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
37
8
8
Попробуй добавить в самое начало файла # -*- coding: utf-8 -*-.
Также, возможно, дело в фтп-сервере...
 

sawoq

Новичок
Пользователь
Апр 6, 2024
2
0
1
Попробуй добавить в самое начало файла # -*- coding: utf-8 -*-.
Также, возможно, дело в фтп-сервере...
Результат не изменился...
Остальные программы-то с ним работают без каких либо дополнительных настроек.
Я вот думал может есть какие либо инструкции, которые можно было бы инициировать через командную строку или т.п.
 

Форум IT Специалистов