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命令當中

浙公網安備 33010602011771號