Python Cheat Sheet - Användbara kodbitar på Python.

Vanligt förekommande bitar av Python-kod

Sidinnehåll

När man ibland behöver detta men inte kan hitta det direkt. Så jag håller dem alla här.

Det här är inget nytt, bara en massa kopierings-klister, men det fungerar för mig, och jag hoppas att du kanske hittar dem användbara också.

Awesome Python i 3D

Vanliga Anaconda-kommandon

Kolla på uv - Ny Python Paket-, Projekt- och Miljöhanterare

Kontrollera om Conda är installerat

conda -V

Kontrollera om Conda är uppdaterat

conda update conda

Skapa en virtuell miljö

conda create -n newenvname python=3.12 anaconda

Aktivera din virtuella miljö

source activate newenvname

Installera ytterligare Python-paket i en virtuell miljö

conda install -n newenvname [package]

Avaktivera din virtuella miljö

source deactivate

Ta bort den virtuella miljön

conda remove -n newenvname --all

Programberoenden

Installera beroenden - Använda en requirements-fil

Istället för att installera paket enskilt, tillåter pip dig att deklarera alla beroenden i en Requirements-fil. Till exempel kan du skapa en requirements.txt-fil som innehåller:

requests==2.18.4
google-auth==1.1.0

Och berätta för pip att installera alla paketen i denna fil med hjälp av flaggan -r:

python3 -m pip install -r requirements.txt

Frysa beroenden

Pip kan exportera en lista över alla installerade paket och deras versioner med hjälp av freeze-kommandot:

python3 -m pip freeze

kommer att producera något som:

requests==2.18.4
google-auth==1.1.0

Pip freeze-kommandot är användbart för att skapa Requirements-filer som kan återskapa exakta versioner av alla paket installerade i en miljö.

Rita rektangel

import cv2

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

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

för att lägga till följdfrågorna nedan:

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

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==vänta för alltid

Jag har ett PIL Image-objekt och vill rita en rektangel på denna bild. Jag vill använda opencv2 och rita en rektangel, och sedan konvertera tillbaka till PIL Image-objekt. Här är hur jag gör det:

# im är ett PIL Image-objekt
im_arr = np.asarray(im)
# konvertera rgb-array till opencvs bgr-format
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 och pts2 är de övre vänstra och nedre höger koordinaterna för rektangeln
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# konvertera tillbaka till Image-objekt
im = Image.fromarray(im_arr)

Enkel argumentparsing

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Konverterar något från {} till {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Något mega användbart och effektivt pythonverktyg.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="input json-filnamn")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="output json-filnamn")

    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

Anropa det sedan som

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

Ladda och spara 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)

Få filnamn utan tillägg

import os

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

kommer att skriva ut:

/path/to/some/file

Användbara länkar