Anmerkungen zu Skript-Dateien in Python
Diese Lektion wurde noch nicht ausformuliert, sondern enthält eher Stichwörter.
Starten von Quelldateien
- Durch Öffnen im Datei-Explorer (mit »input()« am Ende der Quelldatei)
- Durch Aufruf über die Windows-Konsole (mit der Dateinamenserweiterung »py« zusammen)
- Durch Aufruf der Python-Implementation mit dem Skriptnamen als Argument
- Durch eine Kommandodatei (mit PAUSE am Ende der Skriptdatei)
Zugriff auf Skripte über Windows
- Python-Programme via Datei-Explorer starten
- Python-Programme via Datei-Explorer bearbeiten
- Python-Programme via Konsole starten (Umleitung von Standardeingaben, Standardausgabe und Standardfehlerausgabe)
EVA-Programme
main.py
x = int( input( "Zahl? " ))
y = int( input( "Zahl? " ))
print( "Summe = " + str( x + y ))
input( "" ) # Zum Verhindern des sofortigen Schliessens des Fensters
Das Verhindern des Schließens ist nicht nötig, wenn das Programm aus einer schon offenen Windows-Konsole oder aus einem geeigneten Skript (mit PAUSE) gestartet wird.
Anlegen und Starten eines Py-Skriptes ⃗
echo print( "abc" )>main.txt
type main.txt
echo.>>main.txt
echo print( "def" )>>main.txt
type main.txt
Py main.txt
ren main.txt main.py
main.py
copy con main.py
print( "abc" )
printf( "def" )
^Z
py
py die neueste Version
py -x die neueste x-Version
py -x.y startet x.y, falls möglich; sonst erscheint ein Bericht über die installierten Versionen
Anlegen und Starten eines Py-Skriptes ⃗
main.py >tmp.txt
type tmp.txt
echo printf( 2 * int(input()) )>tmp.txt
^Z
echo "32">input.txt
main.py <input.txt >output.txt
type output.txt
Rückgabecodes mit Python festlegen ⃗
- Beispiel
echo from sys import exit>main.py
echo exit( 74 )>>main.py
type main.py
main.py
echo %ERRORLEVEL%
Skripte mit individuellen Anpassungen ⃗
Der Wert »getusersitepackages()« ist der Pfadname eines Verzeichnisses, das für Anpassungen verwendet werden kann, wie beispielsweise die Definition bestimmter Namen.
- Protokoll
from site import getusersitepackages
print( getusersitepackages() )
C:\Users\example\AppData\Roaming\Python\Python37\site-packages
Wenn in diesem Pfad Dateien »sitecustomize.py« und »usercustomize.py« angelegt werden, so werden sie bei Start von Python automatisch immer in dieser Reihenfolge ausgeführt.
usercustomize.py
print( 'Hello!' )
Diese Dateien gelten gleichzeitig auch als Module mit den Namen »sitecustomize« beziehungsweise »usercustomize«. Wenn Namen in einem dieser Module angelegt werden, so gehören sie zu diesem Modul und müssen erst (wie bei anderen Modulen) von dort importiert werden. Daher kann man from-Anweisungen nicht einfach in eines jener Module schreiben, um schon beim Start von Python automatisch einige Module importiert zu haben.
Nachvollziehbarkeit ⃗
Bei einem Skript ist es schwerer, nachzuvollziehen, woher eine bestimmte Ausgabe stammt.
- Konsole
from calendar import prmonth
x = prmonth( 2038, 1 )
January 2038
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31print( x )
None
main.py
from calendar import prmonth
x = prmonth( 2038, 1 )
print( x )
- Protokoll
January 2038
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
None