带参数的Windows子进程

时间:2015-06-05 10:00:39

标签: python windows python-2.7

我需要运行<ul> <li><input type="checkbox" id="cb1" /> <label for="cb1"><img src="http://lorempixel.com/100/100" /></label> </li> <li><input type="checkbox" id="cb2" /> <label for="cb2"><img src="http://lorempixel.com/101/101" /></label> </li> <li><input type="checkbox" id="cb3" /> <label for="cb3"><img src="http://lorempixel.com/102/102" /></label> </li> <li><input type="checkbox" id="cb4" /> <label for="cb4"><img src="http://lorempixel.com/103/103" /></label> </li> </ul>实用程序,并将DLL文件作为参数传递。

经过长时间的谷歌搜索,并玩各种pdb2mdb.exe - 我仍然找不到解决方案......

这是最后一段代码:

call/Popen

但是 - 这样pdb2mdb.exe不希望接受参数,并打印出它的帮助:

def pdb2mdb(logger, modsrcdll):


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

没有Copy file d:\***.dll to C:\cloudlibrary\data Copy file D:\***.dll.xml to C:\cloudlibrary\data PDP FOUND pdbexe found Mono pdb to mdb debug symbol store converter Usage: pdb2mdb assembly - 它根本无法解析os.chdir() ...

我之前在Linux下使用过C:\\Program Files (x86),并且从未遇到过这样的问题,例如:

subprocess.call()

1 个答案:

答案 0 :(得分:2)

您可以尝试subprocess.Popen

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

示例:以下代码将从notepad.exe打开C:\\Windows\\System32并将文件test.txt作为参数。同样适用于您的.dll

import subprocess

    def myFunc():   
        p = subprocess.Popen("C:\\Windows\\System32\\notepad.exe c:\\Users\\admin\\Desktop\\test.txt", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = p.communicate()
        print out
        print err

    myFunc()