Python subprocess.check\u输出解析错误

Python subprocess.check\u输出解析错误,python,sqlite,subprocess,Python,Sqlite,Subprocess,希望是一个简单的问题,使用subprocess.check_输出,我正在尝试执行sqlite3并读取输出。sqlite3 CLI有一个可用的标志,您可以使用“-separator”、“”启动它,以将输出的分隔符更改为逗号。 它在命令行工作,如果我像这样包括它 sqliteOutput = subprocess.check_output(["sqlite3 "," -separator ',' ",dbLocation,"SELECT blah from argh"]) 然后它失败,出现sqli

希望是一个简单的问题,使用subprocess.check_输出,我正在尝试执行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库进行此操作。

这里有一个更正:

["sqlite3 ", " -separator ',' ", dbLocation, "SELECT blah from argh"] # yours
["sqlite3", "-separator", ",", dbLocation, "SELECT blah from argh"] # mine
“-分隔符”开头的空格错误

在一个参数中使用“分隔符”和“,”也是错误的

“sqlite3”结尾的空格也是错误的