Python Cheat Sheet

Frammenti di codice Python frequentemente necessari

Indice

A volte ne ho bisogno ma non riesco a trovarli subito.
Per questo motivo li tengo tutti qui.

Non sono niente di nuovo,
solo una serie di copia-incolla,
ma funzionano per me,
e spero che possano risultare utili anche a te.

Awesome Python in 3d

Comandi comuni di Anaconda

Verifica se Conda è installato

conda -V

Verifica se Conda è aggiornato

conda update conda

Crea un ambiente virtuale

conda create -n newenvname python=3.12 anaconda

Attiva l’ambiente virtuale

source activate newenvname

Installa pacchetti Python aggiuntivi in un ambiente virtuale

conda install -n newenvname [package]

Disattiva l’ambiente virtuale

source deactivate

Elimina l’ambiente virtuale

conda remove -n newenvname --all

Dipendenze del programma

Installazione delle dipendenze - Utilizzando un file requirements

Invece di installare i pacchetti singolarmente, pip ti permette di dichiarare tutte le dipendenze in un File delle Richieste. Ad esempio, potresti creare un file requirements.txt contenente:

requests==2.18.4
google-auth==1.1.0

E poi dire a pip di installare tutti i pacchetti in questo file utilizzando l’opzione -r:

python3 -m pip install -r requirements.txt

Congelamento delle dipendenze

Pip può esportare un elenco di tutti i pacchetti installati e le loro versioni utilizzando il comando freeze:

python3 -m pip freeze

produrrà qualcosa del genere

requests==2.18.4
google-auth==1.1.0

Il comando pip freeze è utile per creare File delle Richieste che possono ricostruire le esatte versioni di tutti i pacchetti installati in un ambiente.

Disegna un rettangolo

import cv2

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

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

per aggiungere le domande successive:

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

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==aspetta all'infinito

Ho un oggetto immagine PIL e voglio disegnare un rettangolo su questa immagine. Voglio utilizzare opencv2 per disegnare il rettangolo e poi convertire nuovamente in un oggetto immagine PIL. Ecco come lo faccio:

# im è un oggetto immagine PIL
im_arr = np.asarray(im)
# converte l'array rgb in formato bgr di opencv
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 e pts2 sono le coordinate dell'angolo in alto a sinistra e in basso a destra del rettangolo
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# converte nuovamente in oggetto immagine
im = Image.fromarray(im_arr)

Parsing semplice degli argomenti

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Convertendo alcune cose da {} a {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Un utile e efficiente strumento Python.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="nome del file json di input")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="nome del file json di output")
    
    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

Poi puoi chiamarlo così:

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

Carica e salva 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)

Ottenere il nome del file senza estensione

import os

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

stamperà:

/path/to/some/file