Last active
December 11, 2023 13:01
-
-
Save Sarverott/d656b60d56bad7f83c093cb4fb57878e to your computer and use it in GitHub Desktop.
Casual common thing, spontanously uploaded for educational reasons, for new programmers to learn. NOTE: Variable names, function names and comments should be in english for more official impression and professional code cleanliness! My use of polish is politeness.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
# ten poczatek "#!/usr/bin/python3" jest dla linuxa, mowi mu jakiego interpretera uzyc, | |
# wtedy w terminalu mozna zamiast "python3 skrypt.py" uruchomic go piszac "./skrypt.py" | |
# zwyczajny kod zycia codziennego, spontanicznie upubliczniony w celach edukacyjnych, | |
# aby nowi programiści mogli sie zainspirowac. UWAGA: Nazwy zmiennych, nazwy funkcji | |
# i komentarze powinny byc w języku angielskim, jesli chcemy zapewnic bardziej oficjalne | |
# wrazenie i dla profesjonalnej czystosci kodu | |
# CEL: zautomatyzuj porzadkowanie plikow | |
# problematyka: | |
# - kopiowanie TYLKO plikow z foldera do foldera | |
# - zmiana ich nieunormowanej nazyw zaczynajacych sie konkretnie | |
# - ma dzialac niezaleznie gdzie i czy uzyje "folder\stary" czy "C:\projekt\folder\start:" | |
import os | |
#import shutil | |
FLODERY = { | |
"z lokacji": "static-audio-samples/announce-ad", | |
"do lokacji": "static-audio-samples" | |
} | |
POCZATKI_PLIKOW = { | |
"intro-": "begin-ad.voice", | |
"outro-": "end-ad.voice" | |
} | |
def przenies_pliki ( stary_folder , nowy_folder , slownik_zamian_prefixow = {} ): | |
# 1.: upewnijmy sie co do tego co mamy na starcie | |
if not os.path.isabs( stary_folder ): # jesli stary jest nieprecezyjna sciezka to "absolutuj" sciezke | |
stary_folder = os.path.abspath( stary_folder ) | |
if not os.path.isabs( nowy_folder ): # jesli nowy jest nieprecezyjna sciezka to "absolutuj" sciezke | |
nowy_folder = os.path.abspath( nowy_folder ) | |
# .. potrzeba nam listy tych plikow | |
zawartosc_foldera = os.listdir(stary_folder) # to cos ala: ["hasla.txt","pamietnik.txt","brudnopis.txt"] | |
raport_zmian = {} # okreslmy gdzie skladowac finalny efekt | |
# 2. zacznijmy od wyliczania punktow tej listy | |
for nazwa_pliku in zawartosc_foldera: # dla kazdej nazwy na liscie zawartosci foldera | |
pierwotna_scierzka = os.path.join( # klej pelna aktualna lokalizacje pliku | |
stary_folder, | |
nazwa_pliku | |
) | |
if not os.path.isfile( pierwotna_scierzka ): # filtr | |
continue # jeśli nie jest plikiem: olej to i idź do następnego | |
for zaczynajace in slownik_zamian_prefixow: | |
# wymyslilem sobie ze | |
# slownik { HASLO(do-zastapienia) : DEFINICJA(czym-zastapic) } | |
# bedzie moimi prefixami warunkowego przechrzczenia | |
if filename.startswith( zaczynajace ): | |
# jeśli zaczyna się od [...] | |
# to czesc nazwy przed pierwsza kropka zamien na wybrany przeze mnie | |
nazwopodzielator = nazwa_pliku.split(".") | |
nazwopodzielator[ 0 ] = slownik_zamian_prefixow[ zaczynajace ] | |
nazwa_pliku = ".".join( nazwopodzielator ) | |
break # py> dalsze szukanie jest zbedne, przerwij petle i idz dalej | |
docelowa_scierzka = os.path.join( # klej wspolzedne pod jaka scierzka ma teraz byc | |
nowy_folder, | |
nazwa_pliku | |
) | |
os.rename(pierwotna_scierzka, docelowa_scierzka) # przenies plik metoda zmiany nazwy | |
#os.replace(pierwotna_scierzka, docelowa_scierzka) | |
#shutil.move(pierwotna_scierzka, docelowa_scierzka) | |
raport_zmian[ pierwotna_scierzka ] = docelowa_scierzka # zakonotuj co trafilo gdzie | |
return raport_zmian # zakoncz dajac wynikiem tej funkcji spis jakie pliki gdzie trafily | |
print ( przenies_pliki( FLODERY[ "z lokacji" ], FLODERY[ "do lokacji" ], POCZATKI_PLIKOW) ) | |
# >>> PRINT_OUTPUT: konsola wypluje zbity bloczek tekstu | |
# mozna to upiekrzyc json.dumps(<raportDict>, indent=4) | |
# trzeba wtedy pamiętać aby doimportować biblioteke wbudowana json | |
# polecam pobawić sie we wrzucanie print'a i wyświetlanie niezrozumialych bajerow | |
# polecam rowniez popsuc powyzszy tekst i patrzec co mowi terminal | |
# polecam tez pokminic nad podorabianiem funkcji uduniecia pustego foldera | |
# milej zabawy ^^ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
. static-audio-samples _ | |
. --. announce-ad _ | |
. --. funny-sound-2137.mp3 | |
. --. hits-today _ | |
. --. begin-ad.voice.1.ogg | |
. --. begin-ad.voice.1.wav | |
. --. begin-ad.voice.2.ogg | |
. --. end-ad.voice.1.wav | |
. --. end-ad.voice.4.ogg | |
. --. end-ad.voice.92.wav | |
. main.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
. static-audio-samples _ | |
. --. announce-ad _ | |
. --. --. intro-voice.1.ogg | |
. --. --. intro-voice.1.wav | |
. --. --. intro_voice.2.ogg | |
. --. --. outro_voice.1.wav | |
. --. --. outro-voice.4.ogg | |
. --. --. ontro-say.92.wav | |
. --. funny-sound-2137.mp3 | |
. --. hits-today _ | |
. main.py |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment