使用子进程的mongoexport失败

时间:2017-09-11 09:10:17

标签: mongodb python-2.7 subprocess

我一直在尝试使用Python的子进程模块从mongodb导出csv。但是,我文件路径中的间距阻碍了我正确导出。

如果输入/输出是脚本所在的位置,则此方法适用于Windows cmd。因此,无需指定路径。

mongoexport --db wsg-database --collection wsg --type=csv --fieldFile fields.txt --out export.csv

如果我在下面指定如下路径,则会出现语法错误:

subprocess.call("mongoexport --db test-database --collection wsg --type=csv --fieldFile "C:\Users\Jess Teo\Desktop\fields.txt" --out "C:\Users\Jess Teo\Desktop\export.csv"", shell=True)

使用子进程的列表形式给出一个空文件。

subprocess.call(["mongoexport", "--db", "test-database", "--collection", \
                 "wsg", "--type=csv", "--fieldFile", \
                 "C:\Users\Jess Teo\Desktop\fields.txt",\
                 "--out", "C:\Users\Jess Teo\Desktop\export.csv"])

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

愚蠢的我,我的同事建议一个简单的决议。只需添加" r"在命令的开头,使用文件路径周围的双引号,它将起作用。

subprocess.call(r'mongoexport --db test-database --collection wsg --type=csv --fieldFile "C:\Users\Jess Teo\Desktop\fields.txt" --out "C:\Users\Jess Teo\Desktop\export.csv"', shell=True)