我的 subprocess.call 問題是我的快捷方式目標是額外的 INI 檔案,它是 LIV2.INI 并且我的 exe 檔案應該運行它。我在快捷方式中的目標鏈接看起來像這樣
"C:\Program Files (x86)\AMO\EXE\PROGRAM LIVE 2.exe" LIV2.INI
我試過這個
subprocess.call('"C:\Users\admin\Desktop\PROGRAM LIVE 2.exe" LIV2.INI')
我試過這個
subprocess.call('C:\Users\admin\Desktop\PROGRAM LIVE 2.exe LIV2.INI')
我仍然收到ini檔案丟失的錯誤?我怎樣才能解決這個問題 :)
先感謝您
錯誤:INI 檔案缺少名稱或名稱錯誤
uj5u.com熱心網友回復:
還請編輯您的問題以實際包含錯誤,因為您將收到語法錯誤,而不是缺少 ini 檔案的錯誤。
你在這里有兩個問題,首先你有一個語法錯誤,因為"\Us"它在 python 中不是一個有效的字串。\u標記 Unicode 轉義序列的開始,字符 S 不是有效的 Unicode 轉義鍵。您可以通過使用 double\\ 轉義\ 字符并告訴 python 您希望字串包含 a\ 而不是將其用作轉義序列的開始來解決此問題。
其次,subprocess.call除了一個串列,而不是一個字串(除非你設定了shell=True;但不要那樣做,因為這意味著你必須手動轉義你已經發現很難的東西)。串列的第一個元素是要運行的可執行檔案,其余元素是命令列引數。例如,如果您想運行pythone 并列印“hello world”,您可以輸入:
subprocess.call(['python', '-c', 'print ("hello world")'])
注意到 python 字串周圍缺少的引號嗎?您不需要這些,因為命令列引數是以原始形式傳遞的,如果您不包含引號,則 shell 不會嘗試拆分它們。
把它們放在一起會產生這樣的東西:
subprocess.call(['C:\\Users\\admin\\Desktop\\PROGRAM LIVE 2.exe', 'LIV2.INI'])
注意雙反斜杠以及每個命令列引數如何是它自己的串列元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389950.html
