为什么python调用函数不起作用?

时间:2015-03-13 20:53:52

标签: python

我正在尝试从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\""])

1 个答案:

答案 0 :(得分:2)

你最后犯错了 - 列表的最后一项应该是什么,你已经写成两个项:

"\"_id\"","\"total_recomendations\""

所以改成它(我推荐):

'"_id","total_recomendations"'

通过在它周围使用单引号,你不需要转义它内部的双引号,使整个恕我直言,更具可读性。无论如何,核心思想是逗号必须是一个字符串的一部分,而您已将其写成分隔两个字符串(列表项)。