win.exe格式在win cmd line shell下D:testmy.exe -a .inisome.ini
。
-a
表示输出为文本格式。
.ini
是my.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完美执行。