zoukankan      html  css  js  c++  java
  • Bash与python混合编程

    由于很多的数据类的api很多都是基于bash的,虽然开发的会有python版本,但很多都是阉割的版本的。

    由于bash本身的限制以及自己对bash没有特别熟练,因此比较好的解决方案是使用python和bash混合编程

    这里注意的是在使用大量的bash命令工作的时候,特别是命令前后存在关联的时候,不能分步使用os.system()来分开执行单独的命令。

    os.system 命令可以理解为一个进程,这个时候最好的是把所有的命令写在一起,命令分行的时候会分步执行

    如在python文件中

    cmd = """export API_TOKEN=%s
            export SERVER_URL=%s
            export PERSISTENT_ID=%s
            curl -H "X-Dataverse-key:$API_TOKEN" -X POST -F "file=@%s" -F 'jsonData=%s'  "$SERVER_URL/api/files/:persistentId/replace?persistentId=$PERSISTENT_ID"
    
            sleep 10
    
            export PERSISTENT_ID=%s
            export MAJOR_OR_MINOR=major
            curl -H "X-Dataverse-key: $API_TOKEN" -X POST "$SERVER_URL/api/datasets/:persistentId/actions/:publish?persistentId=$PERSISTENT_ID&type=$MAJOR_OR_MINOR"
    
    
            """%(API_TOKEN,SERVER_URL,file_id,file_path,"""{"description":"My description.","categories":["Data"],"forceReplace":false}""",dataset_id)

    os.system(cmd)

    以上程序会分开在一个进程里面的执行每一行的命令

    利用%格式化字符串来传递变量和参数到bash命令当中

  • 相关阅读:
    人月神话阅读笔记之一
    第一阶段冲刺站立会议报告——9
    第一阶段冲刺站立会议报告——8
    第一阶段冲刺站立会议报告——7
    第一阶段冲刺站立会议报告——6
    第一阶段冲刺站立会议报告——5
    第二阶段冲刺第一天
    寻找水王2
    构建之法阅读笔记05
    第十二周学习进度条
  • 原文地址:https://www.cnblogs.com/wybert/p/14410149.html
Copyright © 2011-2022 走看看