Найти - Пользователи
Полная версия: Один и тот же скрипт работает по разному на разных версиях Windows
Начало » Python для новичков » Один и тот же скрипт работает по разному на разных версиях Windows
1
Term
Добрый день всем, столкнулся с проблемой, что один и тот же скрипт работает по разному на разных виндах код простой процедура отправки файла на ФТП

 from ftplib import FTP
import os
from configparser import ConfigParser 
 
def SendToFTP(file_name):
    ReadIni = ConfigParser()
    ReadIni.read('D:\\PythonScripts\\SendToFTP\\my.ini')
    #прочитаем настройки FTP
    FtpAddr = ReadIni.get('FTP','HOST')
    FtpPort = ReadIni.get('FTP','PORT')
    FtpUser = ReadIni.get('FTP','USERNAME')
    FtpPass = ReadIni.get('FTP','PASSWORD')
    FtpDir  = ReadIni.get('FTP','FTP_DIR')
    ftp = FTP(FtpAddr)
    ftp.port = FtpPort
    ftp.login(FtpUser, FtpPass)
    ftp.cwd(FtpDir)
    ftp.storbinary('STOR '+os.path.basename(file_name), open(file_name, "rb"))
    ftp.quit()
 
file_name = 'D:\\PythonScripts\\SendToFTP\\BrackN.zip'
SendToFTP(file_name)

отправляется архив
на Windows 7 всё ок, файл отправляется без проблем, на Win2019

получаю вот такую ошибку
Traceback (most recent call last):
File “E:\Python_Scripts\LoadBrack\SendFtp.py”, line 30, in <module>
SendToFTP('E:\\Python_Scripts\\LoadBrack\\BrackN.zip')
File “E:\Python_Scripts\LoadBrack\SendFtp.py”, line 26, in SendToFTP
ftp.storbinary('STOR 0000000_Z999.BRK', open(file_name, “rb”))
File “C:\Program Files\Python311\Lib\ftplib.py”, line 509, in storbinary
return self.voidresp()
File “C:\Program Files\Python311\Lib\ftplib.py”, line 259, in voidresp
resp = self.getresp()
File “C:\Program Files\Python311\Lib\ftplib.py”, line 244, in getresp
resp = self.getmultiline()
File “C:\Program Files\Python311\Lib\ftplib.py”, line 230, in getmultiline
line = self.getline()
File “C:\Program Files\Python311\Lib\ftplib.py”, line 212, in getline
line = self.file.readline(self.maxline + 1)
File “<frozen codecs>”, line 322, in decode
UnicodeDecodeError: ‘utf-8’ codec can't decode byte 0xa0 in position 24: invalid start byte
возможно разница в версиях библиотек, подскажите как поправить?
ну если неправильно отправляю, тоже подскажите))
Спасибо
ZerG
https://habr.com/ru/articles/119405/
Term
ZerG
https://habr.com/ru/articles/119405/
тут проблемы при работе с ini
у меня с ini всё ок я пытаюсь отправлять на FTP бинарник
 ftp.storbinary('STOR '+os.path.basename(file_name), open(file_name, "rb"))

и открываю его как бинарник, почему я получаю ошибку связанную с ‘utf-8’?
я же не читаю текстовый файл.
Как знаю при отправке текстового там и метод другой ftp.storlines и файл открывать с другими параметрами
py.user.next
Попробуй сделать
  
ftp.encoding = 'utf-8'

И уменьши буквы в именах. Прочитай PEP8.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB