簡體   English   中英

python子進程調用失敗,而同一命令行調用工作正常

[英]python subprocess call failing while same command line call works fine

我正在嘗試使用子進程用Python腳本替換命令行調用:

path_to_executable = r'c:\UK\app\Debug\lll.exe'
x = subprocess.call([path_to_executable, args])

args是一個看起來像這樣的字符串:

-unemp Base -rate Base -scen_name Base -print_progress 0 -rate_date 1 -hpa Base -dealpath C:\data\ -nthread 4 -deallist C:\config\all.txt -outdir  c:\outdir\Base

從命令行運行時,該調用正在運行,但是在子進程中使用相同的參數失敗,並出現以下錯誤:

FileIOException(Unable to open directory C:/.../hist.csv)

(存在csv文件-但這是文件,而不是目錄。)

我的問題:1.它如何通過命令行而不是子進程運行? 2.為什么在命令行上沒有做相同的事情時,為什么要嘗試將csv文件作為目錄打開?

也許子進程無法找到文件/目錄。.確定文件存在並且文件路徑不包含任何特殊字符(例如〜/)嗎?

否則嘗試使用參數shell=True

從子流程文檔

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

暫無
暫無

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

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