如何使用绝对路径运行 Python 子进程的 WIN EXE?



win.exe格式在win cmd line shell下D:testmy.exe -a .inisome.ini

-a表示输出为文本格式。

.inimy.exe的相对路径。

那么如何使用子进程调用此执行呢?

我尝试如下但错误:

subprocess.call([r'D:testmy.exe','-a','.inisome.ini'])

在这里使用 rel 路径会令人困惑。

在python中,您可以使用将相对路径转换为绝对路径。

import os
cur_path = os.path.realpath('.')

您也可以加入路径,例如。

final_path = os.path.join(cur_path, 'ini', 'some.ini')

只有您的第一个字符串被标记为原始字符串。您需要将所有字符串标记为原始字符串,其中有反斜杠:

subprocess.call([r'D:testmy.exe', '-a', r'.inisome.ini'])

或转义反斜杠:

subprocess.call(['D:\test\my.exe', '-a', '.\ini\some.ini'])

代码:

subprocess.call([r'D:testmy.exe','-a','.inisome.ini'])

上面的代码是正确的。问题是 cmd .exe上次处理时缺少文件。所以子进程返回值"1"和 cmd 外壳闪烁,我找不到错误。 看起来subprocess返回"0",除非 cmd .exe完美执行。

最新更新