""" 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' # ,,500 # email: # LO: .()@losobolew.pl # BS: .(bs)@losobolew.pl # ZSZ: .(zsz)@losobolew.pl # LOD: .(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()