带参数的Windows子进程

2024-09-30 20:34:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要运行pdb2mdb.exe实用程序,并将DLL文件作为参数传递。在

经过长时间的谷歌搜索,玩各种各样的call/Popen-我仍然找不到解决方案。。。在

这是最后一个代码:

def pdb2mdb(logger, modsrcdll):


    os.chdir("C:\\Program Files (x86)\\Unity\\Editor\\Data\\MonoBleedingEdge\\lib\\mono\\4.0\\")
    subprocess.call("pdb2mdb.exe %s" % modsrcdll)

但是-这边pdb2mdb.exe文件不想接受参数,并打印它的帮助:

^{pr2}$

没有os.chdir()-它根本无法解析C:\\Program Files (x86)。。。在

我以前在Linux下使用过subprocess.call(),从未遇到过这样的问题,例如:

subprocess.call('ls -l %s | grep -v total' % self.path, shell=True)


Tags: 文件实用程序osfiles解决方案callprogramexe
1条回答
网友
1楼 · 发布于 2024-09-30 20:34:17

你可以试试subprocess.Popen

p = subprocess.Popen("pdb2mdb.exe modsrcdll", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
out, err = p.communicate()
print out
print err

示例:下面的代码将从C:\\Windows\\System32打开notepad.exe,并将文件{}作为参数。这对你的.dll也可能有用

^{pr2}$

相关问题 更多 >