python -c command 含义
使用 python -h,查看 -c 参数的说明: -c cmd : program passed in as string (terminates option list)
意思是用 -c command
调用时,执行 command 表示的 Python 语句。command 可以包含用换行符;
分隔的多条语句。
简单来说就是在命令行执行python代码!
python -c command举例应用
$ python -c "import time;print(time.time());print('That is OK.')"
1618970995.6005359
That is OK.
$ python -c "import sys;print(sys.path);print(sys.argv)" a b d
['', '/home/tafan/workspace/envs/python_3_6/lib/python36.zip', '/home/tafan/workspace/envs/python_3_6/lib/python3.6', '/home/tafan/workspace/envs/python_3_6/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/tafan/workspace/envs/python_3_6/lib/python3.6/site-packages']
['-c', 'a', 'b', 'd']
$ python -c "for i in range(3):
print(i)
print('OK')"
0
OK
1
OK
2
OK
$ python -c "for i in range(3):
print(i)
print('OK')"
0
1
2
OK
$ python -c "for i in range(3):print(i)"
0
1
2
由上面的测试代码可知:
- for 语句后的那一行,缩进只有一个空格,代码能够正确执行(当然4个空格也是可以的);这与在exec函数中输入的代码字符串一样,在这时,4个空格的缩进不再是强制的,只要有缩进,python解释器就能够识别
- 使用该功能,
sys.argv
的首个元素为"-c"
,并会把当前目录加入至sys.path
开头(让该目录中的模块作为顶层模块导入)。
python -c command意义
-c 参数提供了不进入python解释器的交互模式,就能够执行python代码的方式。这种方式执行python代码,所有的输出都在命令行,也许在某些shell脚本的场景下会很有用。
参考:
https://docs.python.org/zh-cn/3/using/cmdline.html#cmdoption-c
https://www.pynote.net/archives/1741