Files
GeneratorCSV/generator.py

308 lines
7.9 KiB
Python
Raw Normal View History

2020-08-06 17:37:15 +02:00
"""
Generator plików csv dla office i losobolew
Mateusz Skoczek
Zespół Szkół Ponadgimnazjalnych im. T. Kościuszki w Sobolewie
luty 2019
"""
## Import bibliotek ##
import time as tm
import codecs as cd
######################
## Określanie kodowania plików ##
code = 'utf-8'
#################################
## Funkcje ##
# Konwertowanie liter #
def duze_na_male(text):
# Funkcja zmienia duże litery na małe
return text.lower()
def polskie_na_lacinskie(text):
# Funkcja zamienia małe polskie litery na małe łacińskie litery
# oraz duże polskie litery na małe łacińskie litery
text1 = text.replace('ę', 'e')
text2 = text1.replace('ó', 'o')
text3 = text2.replace('ą', 'a')
text4 = text3.replace('ś', 's')
text5 = text4.replace('ł', 'l')
text6 = text5.replace('ż', 'z')
text7 = text6.replace('ź', 'z')
text8 = text7.replace('ć', 'c')
text9 = text8.replace('ń', 'n')
text10 = text9.replace('Ę', 'e')
text11 = text10.replace('Ó', 'o')
text12 = text11.replace('Ą', 'a')
text13 = text12.replace('Ś', 's')
text14 = text13.replace('Ł', 'l')
text15 = text14.replace('Ż', 'z')
text16 = text15.replace('Ź', 'z')
text17 = text16.replace('Ć', 'c')
text = text17.replace('Ń', 'n')
return text
def konwersja_liter(text):
# Funkcja zamienia jednocześnie duże litery na małe oraz polskie na łacińskie
# Wymaga funkcji: 'duze_na_male' i 'polskie_na_lacinskie'
text = duze_na_male(text)
text = polskie_na_lacinskie(text)
return text
# Funkcje tworzące #
def inicjaly(imie, nazwisko):
# Funkcja tworzy inicjały z podanego imienia i nazwiska
nazwisko_tab = nazwisko.split(' ')
nazwisko_inicjaly = ''
for fragment_nazwiska in nazwisko_tab:
nazwisko_inicjaly += fragment_nazwiska[0]
return imie[0] + nazwisko_inicjaly
# Inne #
def ostrzezenie(czy_uczniowie):
# Ostrzeżenie przed rozpoczęciem generowania plików
if czy_uczniowie == True:
print("Upewnij się, że w folderze 'pliki_zrodlowe' znajduje się plik 'lista.txt' z danymi uczniów")
else:
print("Upewnij się, że w folderze 'pliki_zrodlowe' znajduje się plik 'lista nauczycieli.txt' z danymi nauczycieli")
print("Jeżeli w folderze 'pliki_wyjsciowe' znajdują się pliki 'konta.csv' i 'office.csv' zostaną one usunięte")
print()
czekaj = input('Naciśnij ENTER, gdy będziesz gotowy')
#############
## Komponenty ##
def uczniowie():
ostrzezenie(True)
try:
listatxt = open('pliki_zrodlowe/lista.txt')
except FileNotFoundError:
print()
print("BŁĄD! Plik 'lista.txt' nie został znaleziony")
print()
print()
print('############################')
print()
print()
uczniowie()
try:
zawartosc_lista = listatxt.read()
finally:
listatxt.close()
kontacsv = cd.open('pliki_wyjsciowe/konta.csv', 'w', code)
officecsv = cd.open('pliki_wyjsciowe/office.csv', 'w', code)
ciagi_danych_lista = zawartosc_lista.split('\n\n')
for ciag_danych in ciagi_danych_lista:
dane = ciag_danych.split('\n')
klasa = dane[0]
imie = ((dane[1]).split(', '))[1]
nazwisko = ((dane[1]).split(', '))[0]
login = dane[3]
imie_male = konwersja_liter(imie)
nazwisko_male = konwersja_liter(nazwisko).replace(' ', '.')
rok = tm.localtime()[0]
nr_klasy = klasa[0]
lit_klasy = klasa[1]
szkola = klasa.split(' ')[1]
if klasa[3:] == 'LO':
numer_klasy = int(klasa[0])
if numer_klasy == 1:
rok_ukoncz = '2021'
elif numer_klasy == 2:
rok_ukoncz = '2020'
elif numer_klasy == 3:
rok_ukoncz = '2019'
znacznik_klasy = rok_ukoncz + klasa[1]
elif klasa[3:] == 'BS':
numer_klasy = int(klasa[0])
if numer_klasy == 1:
rok_ukoncz = '2021'
elif numer_klasy == 2:
rok_ukoncz = '2020'
elif numer_klasy == 3:
rok_ukoncz = '2019'
znacznik_klasy = rok_ukoncz + 'bs'
elif klasa[3:] == 'ZSZ':
znacznik_klasy = '2019zsz'
elif klasa[3:] == 'LOD':
numer_klasy = int(klasa[0])
if numer_klasy == 3:
rok_ukoncz = '2020'
elif numer_klasy == 5:
rok_ukoncz = '2019'
znacznik_klasy = rok_ukoncz + 'lod'
haslo = login + ':' + inicjaly(imie, nazwisko)
email = imie_male + '.' + nazwisko_male + znacznik_klasy + '@losobolew.pl'
dane_do_konta = email + ',' + haslo + ',500\n'
# <email>,<hasło (login do librusa)>,500
# email:
# LO: <imie>.<nazwisko>(<rok_ukończenia_szkoły><litera_klasy>)@losobolew.pl
# BS: <imie>.<nazwisko>(<rok_ukończenia_szkoły>bs)@losobolew.pl
# ZSZ: <imie>.<nazwisko>(<rok_ukończenia_szkoły>zsz)@losobolew.pl
# LOD: <imie>.<nazwisko>(<rok_ukończenia_szkoły>lod)@losobolew.pl
kontacsv.write(dane_do_konta)
##############
nazwa = imie + ' ' + nazwisko
stanowisko = 'uczeń'
kraj = 'Rzeczpospolita Polska'
officecsv.write(email + ',' + imie + ',' + nazwisko + ',' + nazwa + ',' + stanowisko + ',' + klasa + ',,,,,,,,,' + kraj + '\n')
kontacsv.close()
officecsv.close()
print()
print()
print('############################')
print()
print()
print('Pliki zostały wygenerowane pomyślnie')
print()
czekaj = input('Naciśnij ENTER aby wyjść')
def nauczyciele():
ostrzezenie(False)
try:
listatxt = open('pliki_zrodlowe/lista nauczycieli.txt')
except FileNotFoundError:
print()
print("BŁĄD! Plik 'lista nauczycieli.txt' nie został znaleziony")
print()
print()
print('############################')
print()
print()
nauczyciele()
try:
zawartosc_lista = listatxt.read()
finally:
listatxt.close()
kontacsv = cd.open('pliki_wyjsciowe/konta.csv', 'w', code)
officecsv = cd.open('pliki_wyjsciowe/office.csv', 'w', code)
ciagi_danych_lista = zawartosc_lista.split('\n\n')
for ciag_danych in ciagi_danych_lista:
ciag_danych = ciag_danych.strip('*')
nazwisko_i_reszta = ciag_danych.split(', ')
nazwisko = nazwisko_i_reszta[0]
nazwisko_male = konwersja_liter(nazwisko).replace(' ', '.')
reszta = nazwisko_i_reszta[1].split(' ')
imie = reszta[-4]
imie_male = konwersja_liter(imie)
haslo = reszta[-2] + ':' + inicjaly(imie, nazwisko)
email = imie_male + '.' + nazwisko_male + '@losobolew.pl'
kontacsv.write(email + ',' + haslo + ',500\n')
#################
nazwa = imie + ' ' + nazwisko
stanowisko = 'nauczyciel'
kraj = 'Rzeczpospolita Polska'
officecsv.write(email + ',' + imie + ',' + nazwisko + ',' + nazwa + ',' + stanowisko + ',,,,,,,,,,' + kraj + '\n')
kontacsv.close()
officecsv.close()
print()
print()
print('############################')
print()
print()
print('Pliki zostały wygenerowane pomyślnie')
print()
czekaj = input('Naciśnij ENTER aby wyjść')
################
## START ##
print('### GENERATOR PLIKÓW CSV ###')
print()
print('1 - Uczniowie')
print('2 - Nauczyciele')
print()
wybor = input('Wybór: ')
print()
print()
print('############################')
print()
print()
if wybor == '1':
uczniowie()
else:
nauczyciele()