2016-08-01 127 views
1

我试图用命令导入一个json文件:mongoimport -c collection -d db < file.json。当我从shell调用这个命令时,每个文档都被导入。但是,当我尝试从模块子进程中使用Python脚本调用它时,像这样:subprocess.call('mongoimport -c collection -d db < file.json', shell=True),我有以下错误:Failed: error processing document #37: unexpected EOF。有人能解释一下为什么它可以与shell协同工作,但是不能从脚本中调用它吗?从python脚本调用mongoimport

在此先感谢。

回答

1

我就是因为subprocess.Popen构造函数接受args来列表,而不是字符串,像这样:

p = subprocess.Popen(['mongoimport', '--db', 'AutoPrivilege', '-c','cars', 'stockvo.json', '--jsonArray', '--upsert','--drop'])...