【发布时间】:2012-02-10 12:29:10
【问题描述】:
希望是一个简单的问题,使用 subprocess.check_output 我正在尝试执行 sqlite3 并读取输出。 sqlite3 CLI 有一个可用的标志,您可以在其中使用“-separator ','”启动它,以将输出的分隔符更改为逗号。 如果我像这样包含它,它可以在命令行中工作;
sqliteOutput = subprocess.check_output(["sqlite3 "," -separator ',' ",dbLocation,"SELECT blah from argh"])
然后它失败并出现 sqlite3 CLI 错误 "Error: too many options" 并引用 SELECT 语句,但如果我只是在没有子进程命令格式的 shell 上运行上述命令,它会按预期工作。
如果我在没有分隔符的情况下再次运行它,它会完美运行,就像这样;
sqliteOutput = subprocess.check_output(["sqlite3 ",dbLocation,"SELECT blah from argh"])
显然我误解了它如何解释子进程中的分隔符参数,有没有办法可以修改它以使其正常运行? 对于好奇的人,我不能为此使用 sqlite3 python 库。
【问题讨论】:
标签: python sqlite subprocess