我使用os.system命令在python中运行一个非python程序,但我将该命令放在一个函数中。我想用os.system运行的程序应该给我一个输出文件,我需要这个输出来进行处理,我还需要把这个输出实际写入我要发送到的目录中。
我写的函数的一般格式如下
def myFunction(infile):
os.system('myProgram '+infile+' '+outfileName)
outfile = numpy.loadtxt(outfileName)
return outfile但是,myProgram (outfileName)的输出没有写入到我的目录中,因此numpy无法加载它。有没有办法存储我在函数中使用os.system运行的程序的全局输出?
发布于 2017-04-20 01:16:19
假设myProgram工作正常,这很可能是因为myProgram不知道python路径,所以文件只是被写到了其他地方。尝试使用完整路径,看看是否有效。
假设infile和outfileName是当前工作目录中的相对路径,您可以这样做:
def myFunction(infile):
cmd = 'myProgram ' + os.path.join(os.getcwd(), infile)
cmd += ' ' + os.path.join(os.getcwd(), outfileName))
os.system(cmd)
outfile = numpy.loadtxt(outfileName)
return outfilehttps://stackoverflow.com/questions/43502004
复制相似问题