前言:
自从用了IDLE或者pycharm等集成开发环境,似乎已逐渐忘记了python命令行的用法,比如我 只能记得一些常用的命令行参数,如python xxx.py 执行python程序、python –version 查看python版本 以及 python -m pip xxx 可以加载模块pip进行安装第三方库。python命令行参数还是有很多可值得学习滴,如 可以向程序传递参数,可以在命令行上输入 -h –help 来查看程序的使用 方法等。接下来,我们一起往下看吧~
python -c xxx
[-c cmd]:执行Python语句后退出,可以执行一些简单的代码,比如 可以作为一个计算器使用
python -c “print(102312 / 3)” # 运行截图如下
注意一点: 需要在引号中 写入一些简单的代码
python -m xxx
[-m mod]:把库模块当作脚本运行(同时也终止了选项列表,即其他选项必须放在-m之前)。最常用的就是使用 python -m pip xxx 也就是后接pip命令,下面细讲pip命令的用法。
python -V 或 python –version
相信大多数人应该都知道 这个命名是用来查看python版本的吧~ 不过有一点,我想应该很少人知道滴~ 看:
加了两个V你会发现python版本显示更详细勒,当然你会发现多加几个V结果是跟两个V结果一样。
python -q
指定-q选项,立即显示命令提示符 >>>
与传统的比是不是更加的简洁了呢?
python xx.py arg1 arg2 arg3 …
可以向xx.py程序中传入指定参数,并在xx.py内部接收这些参数。
import sys
print('从控制台接收到的参数为{},长度为{}'.format(sys.argv,len(sys.argv)))
print(type(sys.argv))
注解:
要从控制台获取参数需要导入 sys中的argv
从结果上看 sys.argv 返回的是一个列表
由此可见,命令行参数以空格为分隔符,保存在sys.argv列表中,其中第一个为文件名
扩展:
当然也可以接收 -h –help –file=’123.txt’这类型的参数,如下代码:
import sys
import getopt
def info():
print(
"""
使用{}程序,方法如下:
-h or --help:显示帮助信息
-m or --module:模块名称
-a or --args:向模块传递参数
-v or --version:显示版本
-o or --output 导出文件
""".format(sys.argv[0])
)
def main(argv):
if len(argv) == 1:
info()
sys.exit()
try:
opts, args = getopt.getopt(sys.argv[1:], "hvo:m:a:",
["help", "output="]) # sys.argv[1:] 过滤掉第一个参数(它是脚本名称,不是参数的一部分)
for cmd, arg in opts:
if cmd in ('-h', '--help'):
print('帮助信息(开发中..)')
sys.exit()
elif cmd in ('-o', '--output'):
output = arg
print('获得到的输出文件为 {}'.format(output))
elif cmd in ('-m', '--module'):
module_name = arg
print('获取到的模块名为 {}'.format(module_name))
elif cmd in ('-a', '--args'):
module_args = arg
print('获得到的模块参数为 {}'.format(module_args))
elif cmd in ('-v', '--version'):
print('当前{}版本 v1.0'.format(sys.argv[0]))
except getopt.GetoptError:
print("参数输入错误,请重新输入。")
if __name__ == '__main__':
main(sys.argv)
看完是不是觉得有点晕呢? 别急 我慢慢解释:
当我们未向控制台输入参数时 也就是程序内部 sys.argv之获得到程序名,此时我们加了一个判断 如果长度为1 那么程序将打印输出 该程序的使用方法。
接下来就是这个程序的核心代码
我们当然也可以用第一种方法 获得到列表取出列表除第一个外所有的元素进行遍历,然后使用字符串拼接找到相应的匹配的值,很显然这是一个foolish方法。
getopt Python 提供了一个 getopt 模块,可以帮助解析命令行选项和参数。函数接口如下:
getopt.getopt(args, options, [long_options])
args – 这是要解析的参数列表。
options – 这是脚本要识别的选项字母字符串,需要参数的选项后面应跟冒号 ‘ : ’
long_options – 这是可选参数,如果指定,则必须是具有long选项名称的字符串列表,应该支持这些字符串。 需要参数的长选项后面应该跟一个等号(’=’)。 要仅接受长选项,选项应为空字符串。
此方法返回由两个元素组成的值:第一个是(选项,值)对的列表。 第二个是剥离选项列表后剩下的程序参数列表。
结果如下:
这样做,程序的可读性提高不少~
pip 命令的基本使用
大多数小伙伴是使用 pip install xxx 来安装模块,pip还有一些不错的参数 ,我们一起看看吧~
注意 -i 参数是临时改变镜像源,下一次下载还是需要手动加上 -i 参数
pip uninstall xxx
既然有安装,那么一定就会有卸载咯~
pip list
列出当前安装的第三方库
最后: