如何从python代码向应用程序传递数据

如何从python代码向应用程序传递数据,python,arguments,subprocess,py2exe,Python,Arguments,Subprocess,Py2exe,我在Windows7 64位机器上使用Python2.7。 我在python代码中调用外部应用程序 os.startfile("D:\\dist\\NewProcess.exe") 此应用程序(使用py2exe将python脚本转换为exe)使用两个字符串,需要从父进程传递。 因此,如何传递这两个字符串,以及如何在NewProcess.py文件中获取这些字符串(可能是sys.argv参数)您可以尝试以下方法: import subprocess import sys try: retc

我在Windows7 64位机器上使用Python2.7。 我在python代码中调用外部应用程序

os.startfile("D:\\dist\\NewProcess.exe")
此应用程序(使用py2exe将python脚本转换为exe)使用两个字符串,需要从父进程传递。 因此,如何传递这两个字符串,以及如何在NewProcess.py文件中获取这些字符串(可能是sys.argv参数)

您可以尝试以下方法:

import subprocess
import sys
try:
    retcode = subprocess.call("D:\\dist\\NewProcess.exe " + sys.argv[1] + " " + sys.argv[2], shell=True)
    if retcode < 0:
        print >>sys.stderr, "Child was terminated by signal", -retcode
    else:
        print >>sys.stderr, "Child returned", retcode
except OSError as e:
    print >>sys.stderr, "Execution failed:", e
导入子流程
导入系统
尝试:
retcode=subprocess.call(“D:\\dist\\NewProcess.exe”+sys.argv[1]+“”+sys.argv[2],shell=True)
如果retcode<0:
打印>>sys.stderr,“子项被信号终止”,-retcode
其他:
打印>>sys.stderr,“返回的子对象”,重新编码
除O错误为e外:
打印>>sys.stderr,“执行失败:”,e

在sys.argv[0]中是脚本名,在sys.argv[1]中。。。[n] 是脚本参数。上面的示例取自子流程模块文档

subprocess.check\u调用([r'D:\dist\NewProcess.exe']+sys.argv[1:3])
注意:否定的
retcode
表示信号仅适用于Unix。路径(和
py2exe
)表明OP使用Windows。