Cześć, miałem skrypt działający napisany w Python i chciałbym go przerobić do wersji Python 3.9. Nie jestem programistą, więc zrobiłem parę poprawek, ale skrypt pokazuje błąd podczas wykonania:
File "/home/test.py", line 96
if plik.startswith(("KK", "TT")):
TabError: inconsistent use of tabs and spaces in indentation
Możecie doradzić, co jeszcze musiał bym zmienić, żeby ten skrypt zadziałał ?
#!/usr/bin/env python3.9
import os
from os.path import join, getsize
import sys
import smtplib
import glob
import fnmatch
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
from email import Charset
import time
import logging
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('/home/listt/listt_test.conf')
adres_serwera = config.get('serwer', 'adres_serwera')
logdir = config.get('log', 'logdir')
mail_from = config.get('mail', 'mail_nadawcy')
mail_password = config.get('mail', 'mail_haslo')
mail_temat_fakk = config.get('mail', 'mail_temat_fakk')
mail_tekst = config.get('mail', 'mail_tekst')
przedst = config.get('konttr', 'adress_file')
home_dir = config.get('konttr', 'home_dir')
dzisiaj = time.strftime('%Y%m%d')
wiersz = []
fp = open(mail_tekst, 'rb')
mail_tekst = fp.read()
fp.close()
logfile = dzisiaj+"_plik.log"
if not os.path.exists(logdir):
os.mkdir(logdir)
logfile = logdir+logfile
if not os.path.exists(logfile):
print("NIE MA PLIKU LOGOW, tworze plik")
logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', filename=logfile, filemode='w', level=logging.DEBUG)
else:
logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', filename=logfile, filemode='a', level=logging.DEBUG)
s = smtplib.SMTP_SSL()
s.connect(adres_serwera,465)
s.login(mail_from, mail_password)
def sendMail(to, subject, text, files=[],server=adres_serwera):
assert type(to)==list
assert type(files)==list
msg = MIMEMultipart()
msg['From'] = mail_from
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text, 'plain', 'UTF-8'))
for file in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"'
% os.path.basename(file))
msg.attach(part)
s.sendmail(mail_from, to, msg.as_string() )
file = open(przedst, "r")
for nr,line in enumerate(file):
line = line.strip()
string = line
if line:
wiersz.append(line)
folder, mail = wiersz[nr].split(",")
print(mail)
for path, dirs, files in os.walk(home_dir+folder):
print(path, files)
pliki = []
pliki.append(path)
lista_plikow=[]
for plik in files:
if plik.startswith(("KK", "TT")):
plik = pliki[0]+os.sep+plik
lista_plikow.append(plik)
print(lista_plikow)
if len(lista_plikow) == 0:
temat = 0
elif len(lista_plikow) == 1:
try:
sendMail([mail], mail_temat_fakk, mail_tekst ,lista_plikow)
except smtplib.SMTPConnectError as komunikat:
logging.warning(komunikat)
except smtplib.SMTPAuthenticationError as komunikat:
logging.warning(komunikat)
except smtplib.SMTPRecipientsRefused as komunikat:
logging.warning(komunikat)
except smtplib.SMTPResponseException as komunikat:
logging.warning(komunikat)
else:
for plik in lista_plikow:
to_log = "wyslano wiadomosc do: "+mail+" z plikiem "+plik
print(to_log)
os.remove(plik)
else:
try:
sendMail([mail], mail_temat_fakk, mail_tekst ,lista_plikow)
except smtplib.SMTPConnectError as komunikat:
logging.warning(komunikat)
except smtplib.SMTPAuthenticationError as komunikat:
logging.warning(komunikat)
except smtplib.SMTPRecipientsRefused as komunikat:
logging.warning(komunikat)
except smtplib.SMTPResponseException as komunikat:
logging.warning(komunikat)
else:
for plik in lista_plikow:
to_log = "wyslano wiadomosc do: "+mail+" z plikiem "+plik
print(to_log)
os.remove(plik)
s.close()