Python 快速参考指南

Python代码中常用的部分

目录

有时候需要这些内容但一时找不到,所以把它们都放在这里。

它们并不是什么新东西,
只是复制粘贴的一些内容,
但对我有用,
希望你也能觉得有用。

Awesome Python in 3d

常用 Anaconda 命令

检查是否安装了 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

程序依赖

安装依赖 - 使用 requirements 文件

与其逐个安装包,pip 允许你在一个 Requirements 文件中声明所有依赖。例如,你可以创建一个包含以下内容的 requirements.txt 文件:

requests==2.18.4
google-auth==1.1.0

然后使用 -r 标志告诉 pip 安装该文件中的所有包:

python3 -m pip install -r requirements.txt

冻结依赖

pip 可以使用 freeze 命令导出所有已安装包及其版本的列表:

python3 -m pip freeze

将输出类似如下内容:

requests==2.18.4
google-auth==1.1.0

pip freeze 命令对于创建 Requirements 文件很有用,这些文件可以重新创建环境中所有包的确切版本。

绘制矩形

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==wait forever

我有一个 PIL Image 对象,想要在这个图像上绘制矩形。我想使用 opencv2 绘制矩形,然后将其转换回 PIL Image 对象。以下是实现方法:

# im 是一个 PIL Image 对象
im_arr = np.asarray(im)
# 将 rgb 数组转换为 opencv 的 bgr 格式
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

有用的链接