簡體   English   中英

Python subprocess.check_output解析錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM