我有一个nonpython程序,我使用os.system命令运行python,但是我把这个命令放在一个函数中。我想用os.system运行的程序应该给我一个输出文件,我需要输出进行处理,我还需要将输出实际写入我发送给它的目录中。
我写的函数是以下一般格式
def myFunction(infile):
os.system('myProgram '+infile+' '+outfileName)
outfile = numpy.loadtxt(outfileName)
return outfile
但是,myProgram(outfileName)的输出没有写入我的目录,因此numpy无法加载它。有没有办法存储我使用os.system运行的程序的全局输出?当它在函数内部时?
答案 0 :(得分:2)
假设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 outfile