2.0 Release Preview 1
This commit is contained in:
308
generator.py
Normal file
308
generator.py
Normal file
@@ -0,0 +1,308 @@
|
||||
"""
|
||||
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()
|
||||
Reference in New Issue
Block a user