我一直在尝试使用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"])
有什么想法吗?
谢谢!
答案 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)