2023-12-15 07:00:01 | 我爱编程网
1、cmd007 作为自定义命令名称
2、cmd007 hello --name=Lily 作为自定义功能1的名称hello打招呼,输出:Hi, Lily
3、cmd007 eat --food=fish 作为自定义功能2的名称food吃东西,输出:I like to eat fish
(一)目录结构如下:
cmd007 # 文件夹必须和自定义命令同名
│ __init__.py
│ __main__.py
(二)实现自定义命令和功能1
在__main__.py中
View Code
来到cmd007的上级目录下,调出命令行客户端,执行命名:
python cmd007
python cmd007 -V
python cmd007 hello --name=Lily --count=3
python cmd007 hello -n Lilei -c 2
分别输出:
提示:如果将这个python包cmd007打包发布,然后安装到python中去,那么每行命令就不用输入python关键字了。
(三)实现自定义命令、功能1、功能2
在__main__.py中增加代码
# 自定义功能2:eat
@cli.command(name="eat")
@click.option('-f', '--food', help="please input your like food")
@click.option('-a', '--and-you', help="ask echo other", default=False)
def hello_command(food, and_you):
print("I like to eat {0}".format(food))
if and_you in ['t', 'T', 'true', 'True', True, 1, "1"]:
print("And what is your favorite food ?")
完整版:
View Code
执行
python cmd007 eat -f fish --and-you=1
输出
延伸:
@click.option()中的参数详解:
每个参数解释如下:
name or flags - 选项字符串的名字或者列表,例如 foo 或者 -f, --foo。
action - 命令行遇到参数时的动作,默认值是 store。
store_const,表示赋值为const;
append,将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
append_const,将参数规范中定义的一个值保存到一个列表;
count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;
nargs - 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。
const - action 和 nargs 所需要的常量值。
default - 不指定参数时的默认值。
type - 命令行参数应该被转换成的类型。
choices - 参数可允许的值的一个容器。
required - 可选参数是否可以省略 (仅针对可选参数)。
help - 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.
metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.
dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.
这个模块 允许 进程改变它的标题( 用系统工具ps和top查看时显示的进程名称)
在多进程系统中, 改变进程标题是很有用的.
这份代码实际上对PostgreSQL中实现进程名称修改的一个封装
获取源代码
git clone
编译
python setup.py build
使用
import setproctitle
setproctitle.setproctitle(‘lizhiwei!’)
更改文件名的操作通常都可以在操作系统的库中找到,对所有的
编程语言
来说都是,python也不例外,在python自带的os库中就有更改文件(夹)名称的函数方法rename,使用实例使用代码和调试结果如下:
#!/usr/bin/python3
import os, sys
# 列出目录
os.mkdir("test")
print ("目录为: %s"%os.listdir(os.getcwd()))
# 重命名
os.rename("test","test2")
print ("重命名成功。")
# 列出重命名后的目录
print ("目录为: %s" %os.listdir(os.getcwd()))
os.rmdir("test2")
调试结果
代码图
所在调试界面
2024-03-02 02:58:47
2024-01-01 09:58:48
2024-04-13 00:38:12
2024-03-31 15:14:06
2024-03-21 00:22:13
2024-02-10 22:15:59