我正在尝试从Python中运行一个程序,并将该输出重定向到一个新文件,稍后我会读到另一个程序。除了“%s>%s”之外,我还有其他方法吗?
distmathandle = open("newfile.distmat", "w")
cmd = "quicktree -out m %s>%s" % (stfname,distmathandle)
sys.stderr.write("command: %s\n" %cmd)
os.system(cmd)
sys.stderr.write("command done\n")
distmathandle.close()
答案 0 :(得分:1)
您正在将文件对象传递给该命令,但只是希望该文件的名称将输出重定向到。
试试吧:
cmd = "quicktree -out m %s>newfile.distmat" % (stfname)
删除该文件的open()/ close()。 或者使用字符串变量作为文件名并使用上一行。但是,您不应该同时从两个进程打开该文件。
执行的命令不知道调用它的Python程序中的对象。