Файл, загруженный с FTP с помощью Python ftplib, закодирован неправильноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Файл, загруженный с FTP с помощью Python ftplib, закодирован неправильно

Сообщение Anonymous »

Я получаю файл с NAS через FTP двумя способами:
  • с помощью файла .bat, где у меня есть: p>
    a) ftp -s:C:\TEMP\runTheDownload.txt (сценарий вызывает код из txt)

    b) Файл .txt содержащий следующее:

    Код: Выделить всё

    open some.address.eu
    username
    password
    ascii
    
    quote "site SBDataconn=ANOTHER.ADD.RESS.HERE
    get 'THE.NAS.LOCATION.OF.THE.FILE' C:\TEMP\output.txt
    
  • У меня есть код Python с указанными выше входными данными, в котором я использую ftplib и следующий код:

    Код: Выделить всё

    with FTP(ftp_server) as ftp:
    ftp.login(ftp_user, ftp_password)
    print("Connected to FTP server.")
    
    # Set transfer mode to ASCII
    ftp.sendcmd("TYPE A")
    # print("Switched to ASCII mode.")
    
    # Execute the custom FTP command (quote)
    ftp.sendcmd('SITE SBDataconn=ANOTHER.ADD.RESS.HERE')
    print("Custom SITE command executed.")
    
    # Download the file
    with open(local_file, 'wb') as file_obj:
    # Write info to buffer
    ftp.retrbinary(
    f"RETR {remote_file}", file_obj.write)
    
Когда я смотрю на файл output.txt при первом подходе, он дает мне отличные данные, например 001, abc, 2013230..., однако вывод Python возвращает закодированные результаты, например:

\x7f\xf0\xf0\xf1\x7fk\x7f\xf0\xf0\xf0\xf0\xf1\xf0\xf2\xf4\xf9\x7fk\x7f\xf0\xf0\xf 0\xf0\xf0\xf0\xf0\xf0\xf0\x7fk\x7fN\xf0\x7fk\x7f\xf0\xf4\x7fk\x7f\xf0\xf0\x7fk\x7f@@@@@ @@@@@\x7fk\x7f\xd6\xd7\xc3\xe4\xe2\xc5\xd9@\x7fk\x7f\x81\xa4\xa3\x96\x94\x81\xa3\x89\xa 2\x83\x88\x85@\xc5\x89\x95\xa2\xa3\xa4\x86\xa4\x95\x87@`@\xf1K\xf7K\xf2@@@@@@@@@

Мне интересно, чего мне не хватает в моем коде Python, чтобы преобразовать его так, как это делается с помощью файла .bat.
Я пробовал расшифровывать его разными способами, но он так и не дал мне ничего, хотя бы отдаленно похожего на правильный результат. Лучшее, что я получил, это декодирование "ISO-8859-1", которое привело к

\x7fððñ\x7fk\x7fððððñðòôù\x7fk\x7fððððððððð...

Я благодарен за любые советы о том, почему файл .bat работает по-другому или как правильно его декодировать в Python.
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ncorrectly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»