Python 命令参数详解

Crossin的编程教室

共 1556字,需浏览 4分钟

 ·

2021-11-01 19:18

大家好,欢迎来到 Crossin的编程教室 !
我想你最常用到的 Python 命令就是运行 Python 脚本文件,像这样:

python xxx.py

不过你知道为什么这样就可以直接执行 Python 代码么?
还有, Python 还有一些常用的命令可玩,你试过吗?

今天我们就来给大家来说说那些我们常用到的 Python 命令。
7ffff10672499a79b693bb209dcb0cb9.webp

python xxx.py
当你通过 Python 执行脚本文件的时候,sys.argv[0] 会存储这个 py 文件名称:
8276b28d306a139f593661a47aa8f6ee.webp
747481b1273e8069cc1a51f4a1d6b443.webp
而当你在 python xxx.py 后面再添加一些参数的时候,sys.argv 也同样可以接收到相关的参数:
06b7cf38d8ee325da2b6f08487718948.webp
1e203a70a85b8af496855b83b21f1b7b.webp
而且,它会把你的执行的 py 文件路径添加到 sys.path 中来,将它作为主模块来运行:
321a19a4a9311851a3c9d967911d42fa.webp
除了直接使用 python 执行脚本文件之外,你也可以使用 Python 执行整个 Python 项目目录或者压缩文件,不过在这里面你需要定义一个 __main__.py ,要不然解释器无法识别运行:

52b006ce7249a273f947ca6cffb3b50d.webp
而当你的目录中有定义 __main__.py 的时候,它就可以将 main 添加到 sys.path 中来,作为 main 模块执行:
b4448431bb00d7b62d1c496d89f8b92d.webp
除此之外,你还可以直接使用脚本的文件执行 Python 代码,在你的脚本文件的第一行定义 Python 环境:

05f0f82e832f269ec251e14dafc5e030.webp
接着添加脚本文件的执行权限,然后就可以直接用脚本文件名称直接运行 Python 了:

1b397ac66cca64adf1a2af759d6c478f.webp
python -c
使用 python -c 可以让你在命令行中写 Python 代码执行,可以使用分号 进行代码分行:
fa1ff0841fb4bb223c824c96c9fbf93a.webp
一种更好的方式是使用空行对代码进行分行:
b23c7adce6890a4a4c1ac0a6f0047619.webp
当你在 python 解释器中使用 -c 命令的时候,它会将 -c 添加到 sys.argv[0] 中,将当前的路径添加到 sys.path 中:

845649947a307dadaed3dd7864ea9340.webp
python -m
使用 -m 模块可以以脚本的方式执行 Python 的模块或者包,因为执行的是模块,所以就不用像执行脚本文件那样把 .py 扩展名称写出来。
a69171ae66e23ecc438fc04cd80247f5.webp
0915cd80187ede28a8ab8c215fd3c7c0.webp
可以看到,模块的完全路径会添加到 sys.argv[0],将当前的路径添加到 sys.path 中,将模块名作为 main 执行。
你能体会到 python xxx.py python -m xxx 之间的区别么?

当然,你也可以使用 -m 来执行包中的模块:
61864899340fed45b28d308a1edc3de5.webp
通过 -m 的形式,解释器会通过搜索路径找到相应的模块执行,这样你就不需要想执行 .py 那样写入文件的绝对路径啦。

使用 python -m 的一个常用场景是在不同的版本环境中执行相应的模块,比如使用 pip 安装模块的时候:
ca4172eff7995d5a2c53f997e9d1e198.webp
5790e49c3486a8bee5057e57d7f17649.webp
5fc99fe19933890ded3f398d25db8c27.webp
python -i
当你使用 -c 命令的时候,还想执行完相关代码后进入 Python 交互模式就可以使用 -i
bfbdb0690977db6df361ebf8311dd791.webp
还有其它的命令,你可以通过 python -h 找到相关的解释:
9e2cd17d39ee4fb58c8b3566198cca67.webp
可能有时候你也想要提供一些命令给别人使用,Python 内置了一个 argparse 的库,你可以使用它来创建你要提供的命令,比如这样:
aa76b5d60e948ca6ccf050a7984cd716.webp
执行的时候就可以使用相关的命令了:

5ee85c2d9009b8dbb4a2efa15402f2ba.webp
click库

除此之外,还有一个叫做 click 的第三方库,也是用来创建命令的,不同的是它可以用装饰器的方式实现,你可以直接使用 @click.option 来定义命令选项,用起来相对简单,这是一个官方的例子:

7fda049ce728ea98698dfb7c7c43bb50.webp
使用起来是这样的:

17ca2bc80516174faaf6ab969fd40f1c.webp6a90ad0eee6971a337d2e112241c04c0.webp
当然,它还提供了多种创建命令的方式,你可以在以下链接中找到:https://click.palletsprojects.com/en/6.x/
以上就是对python命令的介绍。如果文章对你有帮助,欢迎转发/点赞/收藏~
作者:小帅b来源:学习python的正确姿势

_往期文章推荐_

命令行常用命令




如需了解付费精品课程教学答疑服务请在Crossin的编程教室内回复: 666

浏览 57
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报