python语法之命令行参数及pip命令指南

前言:

  • 自从用了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)

看完是不是觉得有点晕呢? 别急 我慢慢解释:

  1. 当我们未向控制台输入参数时 也就是程序内部 sys.argv之获得到程序名,此时我们加了一个判断 如果长度为1 那么程序将打印输出 该程序的使用方法。
  2. 接下来就是这个程序的核心代码
    我们当然也可以用第一种方法 获得到列表取出列表除第一个外所有的元素进行遍历,然后使用字符串拼接找到相应的匹配的值,很显然这是一个foolish方法。
  3. getopt Python 提供了一个 getopt 模块,可以帮助解析命令行选项和参数。函数接口如下:
	getopt.getopt(args, options, [long_options])
  • args - 这是要解析的参数列表。
  • options - 这是脚本要识别的选项字母字符串,需要参数的选项后面应跟冒号 ‘ : ’
  • long_options - 这是可选参数,如果指定,则必须是具有long选项名称的字符串列表,应该支持这些字符串。 需要参数的长选项后面应该跟一个等号(’=’)。 要仅接受长选项,选项应为空字符串。
  • 此方法返回由两个元素组成的值:第一个是(选项,值)对的列表。 第二个是剥离选项列表后剩下的程序参数列表。

结果如下:


这样做,程序的可读性提高不少~


pip 命令的基本使用

大多数小伙伴是使用 pip install xxx 来安装模块,pip还有一些不错的参数 ,我们一起看看吧~

  1. pip install xxx -i https://mirrors.aliyun.com/pypi/simple

    -i 参数表示更换镜像源 有时候当你下载一些库的时候,下载特别慢、有时候甚至报错了 这是因为 默认使用的是国外的镜像源, So 当我们改成国内镜像源时,速度就起飞了~
    贴一下常用镜像源:
    阿里 https://mirrors.aliyun.com/pypi/simple
    清华 https://pypi.tuna.tsinghua.edu.cn/simple
    中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

    注意 -i 参数是临时改变镜像源,下一次下载还是需要手动加上 -i 参数

  2. pip uninstall xxx

    既然有安装,那么一定就会有卸载咯~

  3. pip list

    列出当前安装的第三方库

  4. 最后:
    	//图片来自网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aa.1735803

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值