[英]Python subprocess.check_output parsing error
希望是一個簡單的問題,使用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庫。
這是一個更正:
["sqlite3 ", " -separator ',' ", dbLocation, "SELECT blah from argh"] # yours
["sqlite3", "-separator", ",", dbLocation, "SELECT blah from argh"] # mine
“ -separatator”開頭的空格是錯誤的。
在一個參數中包含“ separator”和“,”也是錯誤的。
“ sqlite3”末尾的空格也是錯誤的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.