簡體   English   中英

沒有shell = True,Python subprocess.call不起作用

[英]Python subprocess.call doesn't work without shell=True

我正在使用Python在內部調用cscope 為此,我使用subprocess.call

問題是沒有shell=True它不能工作

以下代碼按預期工作:

import subprocess
subprocess.call("cscope -d -L0'temp'", shell=True)

但是以下沒有,它返回0狀態代碼,但沒有輸出

import subprocess
subprocess.call(["cscope", "-d", "-L0'temp'"])

關於為什么會發生這種情況的任何想法?

不引用參數,當shell = False時,args直接傳遞給進程而不使用shell:

subprocess.call(["cscope", "-d", "-L0","temp"])

你應該使用check_call:

from subprocess import check_call

check_call(["cscope", "-d", "-L0", "temp"])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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