我正在尝试从python脚本调用bash函数。但是我只能调用发送所有字符串的函数
此调用正在运行
call ("mongoexport -h localhost -d dbinspection -c aggtest -u seppemarotta -p seppemarotta -o aggtest.csv --csv -f \"_id\",\"total_recomendations\"",shell=True)
此调用无效,它说“解析命令行时出错:位置选项太多”。我唯一能够将每个参数作为向量发送,将字段保存在变量中。
call(["mongoexport","-h",url,"-d",db,"-c",col,"-u",user,"-p",pw,"-o",filename,"--csv","-f","\"_id\"","\"total_recomendations\""])
答案 0 :(得分:2)
你最后犯错了 - 列表的最后一项应该是什么,你已经写成两个项:
"\"_id\"","\"total_recomendations\""
所以改成它(我推荐):
'"_id","total_recomendations"'
通过在它周围使用单引号,你不需要转义它内部的双引号,使整个恕我直言,更具可读性。无论如何,核心思想是逗号必须是一个字符串的一部分,而您已将其写成分隔两个字符串(列表项)。