• 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命令当中

  • 相关阅读:
    代码规范总结
    git记住提交密码的技巧
    php foreach遍历
    flight学习笔记
    the resource is not on the build path of a php project
    Google安装postman插件
    PHP开发框架CodeIgniter
    eclipse中php项目开发的环境配置说明
    MyBatis入门篇
    mybatis学习(十二)——mybatis逆向工程
  • 原文地址:https://www.cnblogs.com/wybert/p/14410149.html
Copyright © 2020-2023  润新知