2016-08-01 113 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'])...