Resumo de Python — Trechos úteis de código Python.

Fragmentos de código Python frequentemente necessários

Conteúdo da página

Às vezes preciso disto, mas não consigo encontrar imediatamente. Portanto, mantenho tudo aqui.

Não são nada de novo, apenas uma série de cópias e colagens, mas funcionam para mim, e espero que também os achem úteis.

Python incrível em 3D

Comandos comuns do Anaconda

Dê uma olhada no uv - Novo Gerenciador de Pacotes, Projetos e Ambientes Python

Verificar se o Conda está instalado

conda -V

Verificar se o Conda está atualizado

conda update conda

Criar um ambiente virtual

conda create -n newenvname python=3.12 anaconda

Ativar seu ambiente virtual

source activate newenvname

Instalar pacotes Python adicionais em um ambiente virtual

conda install -n newenvname [package]

Desativar seu ambiente virtual

source deactivate

Excluir o ambiente virtual

conda remove -n newenvname --all

Dependências do programa

Instalar dependências - Usando um arquivo de requisitos

Em vez de instalar pacotes individualmente, o pip permite declarar todas as dependências em um Arquivo de Requisitos. Por exemplo, você poderia criar um arquivo requirements.txt contendo:

requests==2.18.4
google-auth==1.1.0

E dizer ao pip para instalar todos os pacotes neste arquivo usando a flag -r:

python3 -m pip install -r requirements.txt

Congelar dependências

O pip pode exportar uma lista de todos os pacotes instalados e suas versões usando o comando freeze:

python3 -m pip freeze

produzirá algo como

requests==2.18.4
google-auth==1.1.0

O comando pip freeze é útil para criar Arquivos de Requisitos que podem recriar as versões exatas de todos os pacotes instalados em um ambiente.

Desenhar retângulo

import cv2

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

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

para adicionar as perguntas de acompanhamento abaixo:

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

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==espera para sempre

Tenho um objeto PIL Image e quero desenhar um retângulo nesta imagem. Quero usar opencv2 para desenhar o retângulo e depois converter de volta para um objeto PIL Image. É assim que eu faço:

# im é um objeto PIL Image
im_arr = np.asarray(im)
# converte o array rgb para o formato bgr do opencv
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 e pts2 são as coordenadas superior esquerda e inferior direita do retângulo
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# converte de volta para objeto Image
im = Image.fromarray(im_arr)

Análise de argumentos fácil

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Convertendo algumas coisas de {} para {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Alguma ferramenta python mega útil e eficiente.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="nome do arquivo json de entrada")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="nome do arquivo json de saída")
    
    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

E depois chame assim:

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

Carregar e salvar 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)

Obter nome do arquivo sem extensão

import os

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

imprimirá:

/path/to/some/file