Python-Kurzreferenz

Häufig benötigte Python-Code-Abschnitte

Inhaltsverzeichnis

Manchmal braucht man das, kann es aber nicht sofort finden.
Daher behalte ich sie alle hier.

Sie sind nichts Neues,
nur eine Sammlung von Kopier-Vorgängen,
aber sie funktionieren für mich,
und ich hoffe, Sie finden sie ebenfalls nützlich.

Awesome Python in 3d

Häufig verwendete Anaconda-Befehle

Überprüfen, ob Conda installiert ist

conda -V

Überprüfen, ob Conda aktuell ist

conda update conda

Erstellen Sie eine virtuelle Umgebung

conda create -n newenvname python=3.12 anaconda

Aktivieren Sie Ihre virtuelle Umgebung

source activate newenvname

Installieren Sie zusätzliche Python-Pakete in eine virtuelle Umgebung

conda install -n newenvname [package]

Deaktivieren Sie Ihre virtuelle Umgebung

source deactivate

Löschen Sie die virtuelle Umgebung

conda remove -n newenvname --all

Programmdependenzen

Abhängigkeiten installieren – mithilfe einer Requirements-Datei

Statt Pakete einzeln zu installieren, ermöglicht pip, alle Abhängigkeiten in einer Requirements-Datei zu deklarieren. Zum Beispiel könnten Sie eine Datei namens requirements.txt erstellen, die folgende Inhalte hat:

requests==2.18.4
google-auth==1.1.0

Und dann können Sie pip anweisen, alle Pakete in dieser Datei zu installieren, indem Sie den -r-Flag verwenden:

python3 -m pip install -r requirements.txt

Abhängigkeiten einfrieren

Pip kann eine Liste aller installierten Pakete und deren Versionen mithilfe des freeze-Befehls exportieren:

python3 -m pip freeze

wird etwas wie folgendes erzeugen:

requests==2.18.4
google-auth==1.1.0

Der pip freeze-Befehl ist nützlich, um Requirements-Dateien zu erstellen, die die exakten Versionen aller in einer Umgebung installierten Pakete wiederherstellen können.

Rechteck zeichnen

import cv2

cv2.rectangle(img, (x1, y1), (x2, y2), color=(255,0,0), thickness=2)

x1,y1 ------
|          |
|          |
|          |
--------x2,y2

um die folgenden Fragen hinzuzufügen:

cv2.imwrite("my.png",img)

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==wait forever

Ich habe ein PIL Image-Objekt und möchte ein Rechteck auf diesem Bild zeichnen. Ich möchte OpenCV2 verwenden, um ein Rechteck zu zeichnen, und es anschließend in ein PIL Image-Objekt zurückzuwandeln. So mache ich das:

# im ist ein PIL Image-Objekt
im_arr = np.asarray(im)
# Konvertieren Sie den RGB-Array in das BGR-Format, das OpenCV verwendet
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 und pts2 sind die Koordinaten der linken oberen und rechten unteren Ecke des Rechtecks
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# Konvertieren Sie zurück in ein Image-Objekt
im = Image.fromarray(im_arr)

Einfache Argumentverarbeitung

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Converting some stuff from {} to {}'.format(src_file, tgt_file))

#---------------------------------------------------------------------------
def run():
    import argparse

    parser = argparse.ArgumentParser(description="Ein mega nützliches und effizientes Python-Tool.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="Eingabedateiname im JSON-Format")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="Ausgabedateiname im JSON-Format")
    
    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

Dann können Sie es so aufrufen:

python ave_roma.py --src 1.json --tgt 2.json

Laden und Speichern von JSON

import json

def do_convert(src_file, tgt_file):

    with open(src_file) as f:
        src = json.load(f)

    tgt = src # :)

    with open(tgt_file, 'w', encoding='utf-8') as f:
        json.dump(tgt, f, ensure_ascii=False, indent=4)

Dateiname ohne Erweiterung erhalten

import os

print(os.path.splitext("/path/to/some/file.txt")[0])

wird folgendes ausgeben:

/path/to/some/file