CCNP R/S + SPCOR, NSE7 (emeritus)
Gjorde ett litet "hämta filer från gopro till angiven mapp"-script
Visa signatur
Tjo tjo,
skapade precis ett script för att kopiera filer från gopro-kamera (Hero7 black i mitt fall), samtidigt döper den om filerna till att heta filens created-date, dvs tidsstämpeln för när de skapades.
På så vis slipper man fundera på vilken fil som var först etc.
Fler kanske har nytta av det
(notera att jag skapade det på linux, bör fungera på flesta distarna men garanterar inget )
https://github.com/celgit/random-scripts/tree/main/GoPro-down...
Hej, hoppas det är okej att jag ger några kommentarer:
- gopro_found i find_gopro behövs inte då du returnerar så fort du hittat din gopro. Om for loop avslutas utan att du hittat en gopro så vet du att ingen gopro hittats. Att köra os.exit här är inte optimalt, bättre vore att skicka en error tillbaka till main som sen avslutar programmet beroende på vad som returnerats.
- att koppla ihop find_gopro direkk som input till get_media_files skapar du onödig "coupling". Låt main plocka upp returvärdet från första funktionen, validera, och sen starta nästa.
- du har en extra och onödig indenteringsnivå i get_media_files då du skickar in resultatet från find_gopro som argument in i funktionen. Den extra nivån kommer från "if gopro_path". Du kan få bort den indenteringen genom att ändra till "if not gopro_path:" och isåfall körs en tidig return. Men ännu bättre hade varit att ta bort den helt då din find_gopro kör os.exit om ingen gopro hittas, så denna funktionen körs ändå bara om gopro_path har ett värde.
Du kan få bort en indentering till grnom att ändra "if endswith.mp4 yill not enddwith.mp4". Inte lika stor skillnad, men i mitt tycke lite snyggare kod.
- destination_folder_validated gör inte vad den säger. Du ska returnera true/false men har ett gömt beteende där du också skapar en mapp om den inte redan finns. Du har också en alldeles för generell try/catch. Du bör bara fånga specifika exceptions som kan uppstå när den försöker skapa mappen men misslyckas. Du kan också använda "exist_ok: true" i makedirs så att den inte ger error om mappen redan finns.
Överlag väldigt bra skriven kod, det märks att du har bra koll på vad du gör. Snyggt jobbat
CCNP R/S + SPCOR, NSE7 (emeritus)
Hej, hoppas det är okej att jag ger några kommentarer:
- gopro_found i find_gopro behövs inte då du returnerar så fort du hittat din gopro. Om for loop avslutas utan att du hittat en gopro så vet du att ingen gopro hittats. Att köra os.exit här är inte optimalt, bättre vore att skicka en error tillbaka till main som sen avslutar programmet beroende på vad som returnerats.
- att koppla ihop find_gopro direkk som input till get_media_files skapar du onödig "coupling". Låt main plocka upp returvärdet från första funktionen, validera, och sen starta nästa.
- du har en extra och onödig indenteringsnivå i get_media_files då du skickar in resultatet från find_gopro som argument in i funktionen. Den extra nivån kommer från "if gopro_path". Du kan få bort den indenteringen genom att ändra till "if not gopro_path:" och isåfall körs en tidig return. Men ännu bättre hade varit att ta bort den helt då din find_gopro kör os.exit om ingen gopro hittas, så denna funktionen körs ändå bara om gopro_path har ett värde.
Du kan få bort en indentering till grnom att ändra "if endswith.mp4 yill not enddwith.mp4". Inte lika stor skillnad, men i mitt tycke lite snyggare kod.
- destination_folder_validated gör inte vad den säger. Du ska returnera true/false men har ett gömt beteende där du också skapar en mapp om den inte redan finns. Du har också en alldeles för generell try/catch. Du bör bara fånga specifika exceptions som kan uppstå när den försöker skapa mappen men misslyckas. Du kan också använda "exist_ok: true" i makedirs så att den inte ger error om mappen redan finns.
Överlag väldigt bra skriven kod, det märks att du har bra koll på vad du gör. Snyggt jobbat
Grymt, tack för feedback!
Jo men det har du rätt i, fixar fixar samtliga punkter.
Behöver dock göra lite annat samtidigt:
Iom att jag dumpade linux för en kort stund så kör ja windows, eller via en fedora-server, så behöver ha ett sätt att finna vilken miljö man kör i.
Det var svårare än va ja trodde men det går säkert snart
...
Så, nu har jag uppdaterat det så det fungerar för windows, finns säkert mer refaktorering ja behöver göra men det blev lite stort mot slutet så jag nöjde mig med att dela upp det på fler filer.
Fick lite goa emojis av chatgpt också, de passar bra i meddelandena
Notering:
nej, chatgpt har inte skrivit koden, jag har använt den som en mentor när jag skrivit den själv, dock snott några meddelanden med emojis :D.
Spelnyheter från FZ
Copyright © 1999–2025 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.