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)
'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值