win win cmd line shell下的win .exe格式爲D:\test\my.exe -a .\ini\some.ini
。如何通過python子進程以絕對路徑運行win.exe?
-a
指示輸出是文本格式。
.ini\
是相對於my.exe
的路徑。
那麼如何使用子進程調用此執行?
我嘗試如下,但錯誤:
subprocess.call([r'D:\test\my.exe','-a','.\ini\some.ini'])
win win cmd line shell下的win .exe格式爲D:\test\my.exe -a .\ini\some.ini
。如何通過python子進程以絕對路徑運行win.exe?
-a
指示輸出是文本格式。
.ini\
是相對於my.exe
的路徑。
那麼如何使用子進程調用此執行?
我嘗試如下,但錯誤:
subprocess.call([r'D:\test\my.exe','-a','.\ini\some.ini'])
這將是令人困惑在這裏使用相對路徑。
在Python中,你可以通過使用將相對路徑轉換爲絕對路徑。
import os
cur_path = os.path.realpath('.')
你也可以加入像這樣的路徑。
final_path = os.path.join(cur_path, 'ini', 'some.ini')
只有您的第一個字符串被標記爲原始。你要麼需要標記的所有字符串爲原料,你必須反斜線:
subprocess.call([r'D:\test\my.exe', '-a', r'.\ini\some.ini'])
或逃避你的反斜線:
subprocess.call(['D:\\test\\my.exe', '-a', '.\\ini\\some.ini'])
代碼:
subprocess.call([r'D:\test\my.exe','-a','.\ini\some.ini'])
上面的代碼是正確的。問題是cmd .exe在上次處理時執行缺少文件。因此,子進程返回值'1'和cmd shell閃現我無法找到錯誤。 它看起來像subprocess
返回'0',除非cmd .exe執行完美。
你可以包括完整的追溯? – Stael
運行時出現什麼錯誤?你也想只是運行這個或你想獲得操作的輸出? – Harvey
您的第三個字符串似乎包含非轉義字符,這可能會導致按照您的意圖運行命令時出現問題。 – BoboDarph