Computer: Python (aus Wiki)

Python (aus Wiki)

Gehört zu: Scriptsprachen
Siehe auch: PHP, Perl, Data Science, Astrofotografie, Jupyter Notebook, Anaconda
Stand: 18.11.2024

Python Overview

Mit Python wollte ich mich bisher nicht beschäftigen, weil ich mich nicht verzetteln wollte. Ich habe ja schon PHP als meine Standard-Scriptsprache für das Web und von altersher noch Perl.

Mit Python mache ich jetzt einen Versuch, weil ich immer wieder interessante Dinge finde, die mit Python gemacht sind, z.B. jetzt Pygme für den MPlayer.

Aussderdem habe ich ja gerade Perl bei mir abgeschafft, nachdem ich meine TWiki-Webs (wofür Perl erforderlich ist) auf MediaWiki (wo statt Perl nur PHP erforderlich ist) migriert habe. Schließlich habe ich MediaWiki migriert auf WordPress.

Python als Skript-Sprache

Als Skript-Sprache wird Python von einer ganzen Reihe von Softwares benutzt, beispielsweise von:

Installation: “Der Python-Interpreter”

  • Definitive Software Library ID: Python
  • Name: Python
  • Version: 3.13.0    (Nov 2024)
  • Hersteller / Bezugsquelle: https://www.python.org/downloads/
  • Installations-Ordner: C:\Users\rubas\AppData\Local\Programs\Python\Python313\python.exe
  • ….

Python Editor / Umgebungen / IDEs

Wenn man mit Python herum experimentieren will, benötigt man zunächst einen Python-Editor (eigentlich eine IDE für Python).  Da gibt es eine große Auswahl.

Python wird sehr viel von Prof. Weitz von der Hamburger Hochschule für Angewandte Wissenschaften (früher: Fachhochschule Berliner Tor) verwendet. Herr Weitz empfiehlt ein komplett-Installationspaket z.B. Anaconda. Dann hat man gleich Jupyter Notebooks etc. Jupyter Notebooks hiess früher iPython.

Beliebte Python-IDEs sind z.B.

Python Packages

Mit dem “reinen” Python (dem Python Interpreter) kann man noch nicht soviel anfangen. Man benötigt sehr schnell weitere Python Packages und Python Module.

Wenn man eine der oben genannten Python IDEs installiert, bekommt man häufig den Python-Interprter und normalerweise auch einige “Builtin” Packages gleich mit dazu. Zusätzlich dazu gibt es noch “External Packages” letztere werden auch “Third Party Packages” genannt.

Externe Packages muss man ersteinmal im sog. Python Package Index finden: http://PyPI.org
Anschließend muss man sie lokal installieren; z.B. mit PIP: pip install prettytable

PIP steht für “Package Intstaller for Python”. Den braucht man, um Packages zum Python-Interpreter zu installieren.

Zur Begriffsverwirrung: Ein “Modul” ist eine Python-Datei, ein Python-Package ist eine Sammlung von mehreren Python-Modulen.

PyCharm: Eine sehr verbreitete Python IDE

Die IDE PyCharm holen wir uns aus dem Internet:

: https://www.jetbrains.com/pycharm/

In der IDE PyCharm werden sog. “Projekte” gemacht. Zu so einem Projekt wird ein Python-Interpreter und Python-Packages (s.u.) zugeordnet.

Python Tutorials

Auf Youtube gibt es einfache Einführungen in das Thema Python auf meinem Windows-Computer…

Ganz einfach geht es mit: Learn Python in 1 hour:

Wir brauchen also zunächst einen Python Interpreter und dann einen Python CodeEditor.
Im Python CodeEditor müssen wir den zu verwendenden Python Interpreter angeben damit wir den Code auch ausführen können.
Bei PyCharme geht das einfach ganz unten in der Statuszeile…

Noch mächtiger sind Jupyter Notebooks:

Viele hilfreiche Beispiele von Jupyter Notebooks findet man bei:

Python for Astronomie

Als ein erstes Beispiel möchte ich die Metadaten aus den FITS-Dateien auslesen, die meine Astro-Kamera ASI294MC Pro macht.

Zur Bearbeitung von FITS-Dateien finde ich in der Library astropy das Package astropy.io.fits.

Dokumentation dazu: https://docs.astropy.org/en/stable/io/fits/

Vorher noch: pip install prettytable

Mein erstes Python-Programm:

from astropy.io import fits
from pathlib import Path
from prettytable import PrettyTable
pt = PrettyTable()
pt.field_names = ["File name", "Camera", "Created", "Exposure", "Gain"]
pt.align["File name"] = "l"
Ordner = 'C:/Data/APT/CameraCCD_1/2022-06-07'
p = Path(Ordner)
print("FIT-Dateien im Ordner: " + Ordner)
for f in p.glob('*.fit'):
d = f.parent
dateiname = f.name
hdul = fits.open(f)
datum = hdul[0].header['DATE-OBS']
belichtungszeit = hdul[0].header['EXPTIME']
gain = hdul[0].header['GAIN']
instrument = hdul[0].header['INSTRUME']
# print(dateiname, instrument, datum, belichtungszeit, gain)
pt.add_row([dateiname, instrument, datum, belichtungszeit, gain])
hdul.close()
print(pt)

 

xyz