安装
pip3 install click
快速开始
import click
@click.command()
def hello():
click.echo('hello word')
if __name__ == '__main__':
hello()
Click定义可选选项Option
●在Click中,可以使用dick .option来定义选项
●option 中设置default为默认选项
●option 中设置help为帮助信息
●option 设置type为数据类型
●option 设置hide_input 可以隐藏输入
●option 设置confirmation_prompt可以脸证输入
●option 设置nargs表示接受多个值
Click定义参数Argument
●在Click中,可以使用dick.argument来定义参数
●argument 设置nargs 表示接受多个值
●argument 设置type设定格式
●argument 设置type为click File支持对文件操作
Click接受的参数类型
●str : 字符串
●int : 数值
●float : 浮点數
●bool : 布尔值
●click.JUID : UUID值
●clickFile : 文件类型
● click.Path : 文件路径类型
●click.Choice : 可选项类型
●click.IntRange : 数值可选范围
●click.FloatRange : 浮点数可选范围
●click.DateTime : 时间
Click获取用户输入Prompt
●Click 提供了dick.prompt要求用户输入
●Click 提供了dlick.confirm要求用户确认
发布cli脚本
以下面脚本为例:命名 m3p4.py
import click
import os
# 下载m3u8视频
@click.command()
@click.option('--url', prompt='输入可播放的m3u8地址', help='输入可播放的m3u8地址,将通过ffmpeg下载为mp4视频')
# @click.argument('url', default='https://www.youtube.com/watch?v=dQw4w9WgXcQ',type=str)
@click.argument('videoname', default='video',type=str)
def get_video(url,videoname):
click.secho(url,fg='green')
click.secho(videoname,bg='red',fg='white')
os.system('ffmpeg -i ' + url + ' -c copy ' + videoname + '.mp4')
if __name__ == '__main__':
get_video()
编写发布脚本
安装依赖包:
pip3 install setuptools wheel
编写打包脚本
from setuptools import setup, find_packages
setup (
name="m3p4", # 脚本名称
version="0.0.3", # 版本
author="Haibing", # 作者名
author_email="[email protected]", # 作者邮箱
description="m3u8视频下载", # 脚本描述
long_description=" #可将m3u8下载为mp4",# 脚本长描述,支持markdown格式
long_description_content_type= "text/markdown",
packages=find_packages(),# 自动查找包
py_modules= ["m3p4"], # 导入的模块
install_requires= [
"click" # 安装依赖包
],
entry_points={
'console_scripts':[
'm3p4=m3p4:get_video' # 命令=模块:函数 指定m3p4脚本里面函数,注意此处模块需与m3p4.py脚本名称一致
]
}
)
目录结构:
m3p4
- m3p4.py
- setup.py
构建包
python3 setup.py sdist bdist_wheel
自动生成dist build 目录
本地安装
python3 setup.py install
发布cli包
安装依赖twine
pip3 install twine
检查包
twine check dist/*
Checking dist/m3p4-0.0.1-py3-none-any.whl: PASSED
Checking dist/m3p4-0.0.1.tar.gz: PASSED
上传包,先到https://www.pypi.org/注册账号(测试包需要到https://test.pypi.org/注册账号)
(.venv) (base) Pythonlearning % twine upload --repository testpypi dist/* #--repository testpypi 表示上传到测试版本
Uploading distributions to https://test.pypi.org/legacy/
Enter your username: haibing3344
Enter your password:
Uploading m3p4-0.0.1-py3-none-any.whl
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 4.03k/4.03k [00:02<00:00, 1.42kB/s]
Uploading m3p4-0.0.1.tar.gz
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.72k/3.72k [00:01<00:00, 2.73kB/s]
View at:
https://test.pypi.org/project/m3p4/0.0.1/
上传完成后pypi平台上可查看包:
通过pip3安装脚本
pip3 install -i https://test.pypi.org/simple/ m3p4==0.0.3
使用命令
(.venv) (base) Pythonlearning % m3p4 --help
Usage: m3p4 [OPTIONS] [VIDEONAME]
Options:
--url TEXT 输入可播放的m3u8地址,将通过ffmpeg下载为mp4视频
--help Show this message and exit.