Проблема с получением последнего измененного файла ftplib

ftp = ftplib.FTP(host=host, user=login, passwd=password, timeout=10000, encoding='UTF-8')
ftp.set_pasv(False)
    

###############################################################

def GetFileFtp():
    ftp.cwd("/SD1/Log")
    folderInfo = ftp.mlsd(facts=["type", "modify", "size"])
    latestFObj = None
    for f in folderInfo:
        fType = f[1]["type"]
        if not fType == "file":
            continue
        if latestFObj == None:
            latestFObj = f
        else:
            if latestFObj[1]["modify"] <= f[1]["modify"]:
                latestFObj = f
    
    result = latestFObj[0]
    print(f"The latest file is {result}")
    print("Файл получен!")
    with open('text.txt', 'wb') as file:
        ftp.retrbinary(f"RETR {result}", file.write) 

Была проблема выполнения команд, посоветовали отключить пассивный режим. Команды стали выполнятся, такие как fpt.dir() к примеру. Но появились ошибки в другом блоке.

Ошибка следующая:

c:/Users/ADV/Desktop/asulab/asulabTG.py
Traceback (most recent call last):
  File "c:\Users\ADV\Desktop\asulab\asulabTG.py", line 51, in <module>
    GetFileFtp()
  File "c:\Users\ADV\Desktop\asulab\asulabTG.py", line 22, in GetFileFtp
    for f in folderInfo:
  File "C:\Users\ADV\AppData\Local\Programs\Python\Python312\Lib\ftplib.py", line 578, in mlsd
    self.sendcmd("OPTS MLST " + ";".join(facts) + ";")
  File "C:\Users\ADV\AppData\Local\Programs\Python\Python312\Lib\ftplib.py", line 281, in sendcmd
    return self.getresp()
           ^^^^^^^^^^^^^^
  File "C:\Users\ADV\AppData\Local\Programs\Python\Python312\Lib\ftplib.py", line 254, in getresp
    raise error_perm(resp)
ftplib.error_perm: 502 Invalid command.

Ответы (0 шт):