Inhaltsverzeichnis

Python

Oftmals gibt es eine Auswahl zwischen mehreren Python Versionen in der Paketverwaltung. Falls die vorinstallierte Version also zu alt ist, kann man einfach eine neuere Pralell dazu installieren.

zypper in python310

Mit dem Befehl wurde python3.10 auf dem Suse-System installiert.

venv

Eignet sich um in einer vom System abgetrennten Python Umgebung neue Pakete zu installieren um hier Python Programme zu testen .

Die Python Module lassen sich in der Umgebung mit pip installieren und anzeigen. Die in der Umgebung installierten Module lassen sich anzeigen mit:

pip list

Nun kann man eine eigene Umgebung schaffen in der nur die neue Python Version Verwendung findet. Hierzu wird ein neues Verzeichnis angelegt z.B. ocsp-checker310 und dann das Kommando aufgerufen:

python3.10 -m venv ocsp-checker310

Die Umgebung aktivieren mit:

source ~/checker310/bin/activate

Überprüfen welche Version verwendet wird mit python -V oder mit:

(ocsp-checker310) tux@iglu:~/ocsp-checker310> pip3 --version
pip 22.3.1 from /home/tux/ocsp-checker310/lib64/python3.10/site-packages/pip (python 3.10)

In der Umgebung evtl. den Proxy nutzbar machen:

(ocsp-checker310) tux@iglu:~/ocsp-checker310> export http_proxy=http://tux:geheim@internet.example.de:8181
(ocsp-checker310) tux@iglu:~/ocsp-checker310> export https_proxy=http://tux:geheim@internet.example.de:8181

Im Python-Umgebung wieder verlassen durch Eingabe von:

deactivate

Listen

Listen sind für mich in Python immer wichtig, daher kommen sie hier zuerst.

Nur bestimmte Elemente aus einer Liste heraus filtern:

list( myBigList[i] for i in [87, 342, 217, 998, 500] )

subprocess

Verwendung vom Modul subprocess um Standard Kommandos im Python Code auszuführen.

import subprocess
run = subprocess.run('openssl x509 -in RON_SBS.pem -text -noout|grep -A2 -i Validity|grep -i "Not After"', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
>>> 
>>> 
>>> run
CompletedProcess(args='openssl x509 -in RON_SBS.pem -text -noout|grep -A2 -i Validity|grep -i "Not After"', returncode=0, stdout=b'            Not After : Oct 18 09:30:41 2044 GMT\n', stderr=b'')

Hierbei möchte man oft an den Output kommen. Das erzeugte run Obj. ist ein subprocess-Obj. und hat damit weitere Optionen.

>>> run.stdout
b'            Not After : Oct 18 09:30:41 2044 GMT\n'
 
>>> run_str = str(run.stdout)
>>> run_lst = run_str.split(" ")
 
>>> run_lst[15:19]
['Oct', '18', '09:30:41', '2044']

Datum

Das aktuelle Datum ausgeben

from datetime import date
 
>>> date.today().isoformat()
'2023-06-15'

String Bearbeitung

Vom String line = „{VLAN_0300}“ sollen die geschweiften Klammern sowie das „VLAN_“ komplett entfernt werden. Hier für eignet sich strip() am besten:

line.strip('{VLAN_}

Soll nur das letzte Zeichen „}“ entfernt werden:

line[:-1]