我有一个如下函数,当我在CMD中执行python代码(SIMT是一个可执行文件)时,它工作得很好。然而,当我用py2exe构建可执行文件时,一个shell窗口很快就会出现和消失。所以我搜索发现我可以用子流程.popencreationflags=0x08000000。但它不起作用。在
这是我的职责
def Kill(SIMT):
outfile1 = open('Kill.txt', 'w')
outfile1.write('Kill' + '\r\n')
outfile1.write('x')
outfile1.close()
os.system("type Kill.txt | testclient p . " + SIMT)
os.remove('Kill.txt')
我把操作系统有:
^{pr2}$另外,我需要shell=True吗?在
如果您希望shell为您安排管道,那么您确实需要使
shell=True
和将第一个参数设置为字符串,就像您为os.system
,而不是一个列表一样。使用shell=False
,list意味着执行作为列表第一项的程序,其他项作为它的命令行参数;因此不能让第一项包含|
并期望shell代表您安排该管道。在您的替代方法是自行安排“管道”或其等价物,例如,这里可能最简单,只需在
Kill.txt
上打开一个file对象作为subprocess.Popen
的标准输入(stdin=
),它只执行testclient
(我相信type
除了将文件读出到stdout之外什么也不做,所以这应该足以满足这个特定的用例)。在相关问题 更多 >
编程相关推荐