2 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
將每個(gè)參數(shù)與其值分開,如下所示:
step1_cmd = [exe,
"--step",
"1",
"--p",
str(pheno_fp), # if it isn't a string already
"--b",
"1000",
"--o",
str(construction_fp) + "dpw_leaveout"
]
因?yàn)樵趥鬟f參數(shù)列表時(shí),每個(gè)部分都用空格分隔,包括選項(xiàng)和它們的值

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
此行為的解釋在這里:
args 是所有調(diào)用所必需的,并且應(yīng)該是一個(gè)字符串或一系列程序參數(shù)。通常首選提供一系列參數(shù),因?yàn)樗试S模塊處理任何需要的參數(shù)轉(zhuǎn)義和引用(例如,允許文件名中有空格)。
示例:序列
l?=?['ls',?'-l?tmp']
給出錯(cuò)誤
subprocess.run(l)?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ls:?illegal?option?--
這是因?yàn)?code>subprocess(這是對 的調(diào)用Popen
)正在嘗試運(yùn)行ls "-l tmp"
。
定義參數(shù)序列的正確方法是將它們分開,以便正確引用它們
subprocess.run(['ls',?'-l',?'tmp'])
添加回答
舉報(bào)