Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 4, 2023 10:30:22

Term
Зарегистрирован: 2023-08-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Один и тот же скрипт работает по разному на разных версиях Windows

Добрый день всем, столкнулся с проблемой, что один и тот же скрипт работает по разному на разных виндах код простой процедура отправки файла на ФТП

 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
возможно разница в версиях библиотек, подскажите как поправить?
ну если неправильно отправляю, тоже подскажите))
Спасибо

Отредактировано Term (Авг. 4, 2023 10:37:42)

Офлайн

#2 Авг. 4, 2023 11:27:25

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Один и тот же скрипт работает по разному на разных версиях Windows

https://habr.com/ru/articles/119405/



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Авг. 4, 2023 11:54:26

Term
Зарегистрирован: 2023-08-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Один и тот же скрипт работает по разному на разных версиях Windows

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 и файл открывать с другими параметрами

Офлайн

#4 Авг. 4, 2023 12:32:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

Один и тот же скрипт работает по разному на разных версиях Windows

Попробуй сделать

  
ftp.encoding = 'utf-8'

И уменьши буквы в именах. Прочитай PEP8.



Отредактировано py.user.next (Авг. 4, 2023 12:33:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version