Python Cheat Sheet

Często potrzebne fragmenty kodu w Pythonie

Page content

Czasami potrzebne są one natychmiast, ale nie da się ich znaleźć od razu.
Dlatego trzymam je wszystkie tutaj.

Nie są nowe,
tylko zestaw kopio-wklejek,
ale działają dla mnie,
i mam nadzieję, że dla Ciebie również będą przydatne.

Awesome Python in 3d

Powszechne polecenia Anacondy

Sprawdź, czy Conda jest zainstalowany

conda -V

Sprawdź, czy Conda jest zaktualizowany

conda update conda

Utwórz środowisko wirtualne

conda create -n newenvname python=3.12 anaconda

Aktywuj swoje środowisko wirtualne

source activate newenvname

Zainstaluj dodatkowe pakiety Pythona w środowisku wirtualnym

conda install -n newenvname [package]

Wyloguj się ze swojego środowiska wirtualnego

source deactivate

Usuń środowisko wirtualne

conda remove -n newenvname --all

Zależności programu

Instalacja zależności – korzystając z pliku wymagań

Zamiast instalować pakiety indywidualnie, pip pozwala zadeklarować wszystkie zależności w pliku Wymagań. Na przykład możesz utworzyć plik requirements.txt zawierający:

requests==2.18.4
google-auth==1.1.0

I poinstruować pip, aby zainstalował wszystkie pakiety w tym pliku, używając flagi -r:

python3 -m pip install -r requirements.txt

Zamrażanie zależności

Pip może wyeksportować listę wszystkich zainstalowanych pakietów i ich wersji za pomocą polecenia freeze:

python3 -m pip freeze

zwróci coś takiego jak:

requests==2.18.4
google-auth==1.1.0

Polecenie pip freeze jest przydatne do tworzenia plików wymagań, które mogą odtworzyć dokładnie te same wersje wszystkich zainstalowanych pakietów w środowisku.

Narysuj prostokąt

import cv2

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

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

aby dodać poniższe pytania:

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

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==czekaj wiecznie

Mam obiekt obrazu PIL i chcę narysować prostokąt na tym obrazie. Chcę użyć opencv2 i narysować prostokąt, a następnie przekonwertować z powrotem do obiektu PIL Image. Oto, jak to robię:

# im to obiekt obrazu PIL
im_arr = np.asarray(im)
# konwertuj tablicę rgb na format bgr opencv
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 i pts2 to współrzędne lewego górnego i prawego dolnego narożnika prostokąta
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# konwertuj z powrotem do obiektu Image
im = Image.fromarray(im_arr)

Łatwe parsowanie argumentów

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Konwertowanie czegoś z {} do {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Niektóry bardzo przydatny i wydajny narzędzie Pythona.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="nazwa pliku wejściowego json")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="nazwa pliku wyjściowego json")
    
    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

Następnie wywołaj tak:

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

Załaduj i zapisz 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)

Pobierz nazwę pliku bez rozszerzenia

import os

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

wypisze:

/path/to/some/file

Przydatne linki