Шпаргалка по Python - Полезные фрагменты кода на Python.

Часто используемые фрагменты кода на Python

Содержимое страницы

Иногда это нужно, но найти не сразу. Поэтому держу их все здесь.

Это не что-то новое, просто набор копий-вставок, но они работают для меня, и надеюсь, вам тоже могут пригодиться.

Awesome Python in 3d

Общие команды Anaconda

Ознакомьтесь с uv - Новый менеджер пакетов, проектов и сред Python

Проверка установки Conda

conda -V

Проверка обновлений Conda

conda update conda

Создание виртуальной среды

conda create -n newenvname python=3.12 anaconda

Активация виртуальной среды

source activate newenvname

Установка дополнительных пакетов Python в виртуальную среду

conda install -n newenvname [package]

Деактивация виртуальной среды

source deactivate

Удаление виртуальной среды

conda remove -n newenvname --all

Зависимости программ

Установка зависимостей - Использование файла требований

Вместо установки пакетов по отдельности, pip позволяет указывать все зависимости в файле требований. Например, можно создать файл requirements.txt, содержащий:

requests==2.18.4
google-auth==1.1.0

И указать pip установить все пакеты из этого файла с помощью флага -r:

python3 -m pip install -r requirements.txt

Заморозка зависимостей

Pip может экспортировать список всех установленных пакетов и их версий с помощью команды freeze:

python3 -m pip freeze

что даст что-то вроде

requests==2.18.4
google-auth==1.1.0

Команда pip freeze полезна для создания файлов требований, которые могут воспроизвести точные версии всех пакетов, установленных в среде.

Рисование прямоугольника

import cv2

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

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

чтобы добавить следующие вопросы ниже:

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

cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==ожидание навсегда

У меня есть объект PIL Image, и я хочу нарисовать прямоугольник на этом изображении. Я хочу использовать opencv2 и нарисовать прямоугольник, а затем преобразовать обратно в объект PIL Image. Вот как я это делаю:

# im - это объект PIL Image
im_arr = np.asarray(im)
# преобразование rgb массива в формат bgr opencv
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 и pts2 - это координаты верхнего левого и нижнего правого углов прямоугольника
cv2.rectangle(im_arr_bgr, pts1, pts2,
              color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# преобразование обратно в объект Image
im = Image.fromarray(im_arr)

Простое разбор аргументов

import json

#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
    print('Конвертация чего-то из {} в {}'.format(src_file, tgt_file))

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

    parser = argparse.ArgumentParser(description="Некоторые очень полезные и эффективные инструменты Python.")
    parser.add_argument("-s", "--src", dest="src_file",
        help="имя входного json файла")
    parser.add_argument("-t", "--tgt", dest="tgt_file",
        help="имя выходного json файла")

    args = parser.parse_args()

    do_some_awesomeness(args.src_file, args.tgt_file)

if __name__ == '__main__':
    run()

Затем вызовите его так

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

Загрузка и сохранение 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)

Получение имени файла без расширения

import os

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

выведет:

/path/to/some/file

Полезные ссылки