Paulinha_B
Honourable Member
"Ik spreek Spaans tegen God, Italiaans tegen de vrouwen, Frans tegen mannen en Duits tegen mijn paard." Dixit Carlos V, Römisch-deutscher Kaiser
Sorry Bram, maar dat is toch niet relevant? Het punt is dat er in Windows geen python inzit, van huis uit. De mogelijkheid om een soort Linux-emulator te installeren verandert daar niets aan.
.
[Bericht gewijzigd door bprosman op (100%)]
Op 15 april 2023 15:51:40 schreef Paulinha_B:
Sorry Bram, maar dat is toch niet relevant? Het punt is dat er in Windows geen python inzit, van huis uit. De mogelijkheid om een soort Linux-emulator te installeren verandert daar niets aan.
In Linux ook niet altijd, "Python is available on MOST distributions", anders is het een losse installatie net als op Window.
Maar het was ook een reactie op deze opmerking :
Het enige serieuze OS dat niet standaard met een python interpreter komt is Windows, en dat heeft ook geen bash.
Overigens is het geen "Linux emulator" maar gewoon native Linux.
Windows heeft "Powershell" , zeker zo krachtig als Python.
[Bericht gewijzigd door bprosman op (10%)]
Paulinha_B
Honourable Member
"Ik spreek Spaans tegen God, Italiaans tegen de vrouwen, Frans tegen mannen en Duits tegen mijn paard." Dixit Carlos V, Römisch-deutscher Kaiser
Ik ga er maar niet verder op in, er is me altijd geleerd om niet te proberen discuteren met Windows-verdedigers...
Terug naar de openingsvraag: we lijken intussen akkoord te zijn dat het hele probleem erin zit dat er python3 wordt losgelaten op code die bedoeld is voor een eerdere versie. Het installeren van die eerdere versie zou een mogelijkheid zijn, maar heeft stevige nadelen, het zou een achteruitgang zijn. Dus is er voor de topicstarter maar een goede oplossing: de code aanpassen totdat hij werkt onder python3. Mits het posten van fatsoenlijke berichten kan zij/hij daar volop hulp voor krijgen.
Ik ben iets vlotter met bash, daarom mijn keuze en puur als script om TS te helpen, niet als perfect gedocumenteerd meesterwerk.
Aangezien het probleem feitelijk de behandeling twee virtuele tekstbestanden van enkele karakters is lijkt bash me prima van toepassing.
Wil je een multidimensionale array van 50 MB analyseren en dan als mooie PDF document rapporteren dan ga je al snel naar Python of iets anders. Net als een webformulier lekker snel in php kan maar een internetbanksite liever in java.
Paulinha_B
Honourable Member
"Ik spreek Spaans tegen God, Italiaans tegen de vrouwen, Frans tegen mannen en Duits tegen mijn paard." Dixit Carlos V, Römisch-deutscher Kaiser
Tsja, daar is wel iets van aan, de taak is zo triviaal dat er zelfs geen awk aan te pas kwam, zelfs nog geen grep 
Alleen was de vraag nu eenmaal naar hulp met python-code.
En misschien iets zinnigs voor de TS.
Die moet zijn kleine bestandje even overschrijven naar pyton3 formaat om het te laten werken. Als de TS gewoon die code hier had gepost dan had iemand hier dat waarschijnlijk zelfs al voor hem gedaan en had had het al gewerkt bij de TS. Dus geen schermfoto's meer.
Verder geen HEIC bestanden posten. HEIC is van dat aangevreten fruit merk. Dat is behalve kwalitatief goed ook een soort van secte. Alleen als je je digitale ziel met huid en haar overleverd aan die mensen mag je mee doen.
Dat is een van de redenen dat alleen aangevreten fruitleden dat heic spul kunnen lezen. Er zit zoveel aan rechten en licenties op die coders en docoders dat de meeste gangbare grafische software dit niet kunnen lezen, schrijven of omzetten. Je moet altijd iets moeilijks doen om het te kunnen lezen.
Open software is niet beter dan apple ofzo. Maar wel altijd voor iedereen leesbaar. Apple is alleen leesbaar voor leden en de amerikaanse geheime dienst.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Op 15 april 2023 11:30:47 schreef blurp:
[...]Doch is 100x beter gedocumenteerd dan het shell script dat jij net post.
Ach het is allebei ellende/niks.
In het shell script mis ik de export van de GPIO pin ook nog eens.
Nergens geen commentaar, maar in het python script staan ook maar 5 regels comment, waarvan er 2 onnodig zijn, dus 100x beter klopt ook niet want 100 * 0 is nog steeds nul. Dan had je er helemaal geen commentaar in moeten zetten, dan is de bewering juist. 
Verder gebruik gewoon sh (stelletje bash junkies).
python:
fan.off -> voor de while loop: duplicate code, nergens voor nodig. (DRY)
is_close -> variable slaat nergens op, moet is_fan_off zijn of zo.
De hele constructie met is_close is nergens voor nodig.
En het commentaar wat erbij staat (# upper bound..) kun je net zo goed weglaten want er staat al 2 keer onder wat het doet.
Na die open(... moet er geen close bij? Of heb je nu een file-handle leak.
Paulinha_B
Honourable Member
"Ik spreek Spaans tegen God, Italiaans tegen de vrouwen, Frans tegen mannen en Duits tegen mijn paard." Dixit Carlos V, Römisch-deutscher Kaiser
gebruik gewoon sh
O ja. En ga "gewoon" met paard en kar naar de bakker.
Toevoeging: en wat is het verband tussen de kwaliteit van de code en de hoeveelheid commentaar? Ik heb altijd geleerd mijn code zo netjes en duidelijk te schrijven dat er geen commentaar nodig is. Of toch zo weinig mogelijk. Een vroege werkgever van me zei ooit "ik betaal u om programma's te schrijven, niet voor romans" en hij had daar wel een punt, vind ik nu.
[Bericht gewijzigd door Paulinha_B op (67%)]
Op 15 april 2023 22:27:04 schreef henri62:
Na die open(... moet er geen close bij? Of heb je nu een file-handle leak.
Die file-handle is locaal gescoped, dus de garbage collector ruimt hem op.
Dat kun je smerig vinden, maar een holy war over garbage collection is net zoiets als sh vs bash, windows vs unox, vi vs emacs.
Geef mij de popcorn even door asjeblieft...
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op 15 april 2023 17:01:17 schreef Paulinha_B:
Het installeren van die eerdere versie zou een mogelijkheid zijn, maar heeft stevige nadelen, het zou een achteruitgang zijn.
Python2 installeren moet gewoon kunnen. Bovenaan zet je dan #!/usr/bin/python2
en de /usr/bin/python laat je gewoon naar python3 blijven wijzen.
(de meeste Linux-installatie programmas zouden best wel eens als je pyton3 HEBT maar python2 installeert de boel kunnen omzetten. )
Op 16 april 2023 12:21:23 schreef rew:
Bovenaan zet je dan #!/usr/bin/python2
Dat is sowieso het advies vanuit Python (of "Best practice" zo je wil), om van ieder pythonscript expliciet te maken welke python versie ze gebruiken.
Maar volgens mij was het enige python2 in TS zijn script de print zonder (), en die is er nu uit.
De spelfout met open (open (<filename>,"z") was gewoon een spelfout, geen enkele versie van python heeft ooit een "z" op die plek gehad (net als C trouwens, het is gewoon de open() call die in iedere C library zit)
Dus de makkelijkste optie is het gewoon aanpassen aan python3.