0


Python -c 命令行执行方式

1. 运行效果

通过-c选项,可以在shell或cmd命令行中,直接执行python脚本,效果如下图:

当python脚本,语句脚本,结构较复杂时,可以通过以下三种方式执行。

此处以python处理json文本为例,首先创建以下json.txt文件,内容如下:

{
    "detail_err_msg": "", 
    "err_msg": "", 
    "err_no": 0, 
    "result": [
        173, 
        174, 
        175
    ], 
    "sync": false, 
    "trace_id": "[104a3ad56d8]"
}

计划使用cat json.tx通过管道直接将内容输出给python进行处理,提取result数组的内容。

2. 使用分号

在python中,可以使用分号分隔同级代码,即缩进相同的语句。但在分支、循环等结构语句时,仍然需要传入回车符。

cat json.txt | python -c 'import json,sys;obj=json.load(sys.stdin);list=obj["result"];print(list)'

因分号无法分隔缩进不同的循环体语句,故此处只提取了整个数组,未做进一步处理。

3. 使用$'..\n..'

【参考】:https://www.pythonheidong.com/blog/article/429274/5abe9eb20ed2fe6991b4/

在bash中,可以使用python -c $'...\n...'格式,输入单行内容,即$开头,后跟''引号包含脚本,其中的换行使用\n表示。

cat json.txt | python -c $'import json,sys\nobj=json.load(sys.stdin)\nlist=obj["result"]\nfor i in list:\n  print(i)'

4. 使用引号换行

更简单的方式是,使用 python -c '

...

'

方式,直接使用单个引号,引入正常的换行脚本。

cat json.txt | python -c '
import json,sys
obj=json.load(sys.stdin)
list=obj["result"]
for i in list:
  print(i)
'

标签:

本文转载自: https://blog.csdn.net/whereiwillgo/article/details/117703013
版权归原作者 李强 DST 所有, 如有侵权,请联系我们删除。

“Python -c 命令行执行方式”的评论:

还没有评论