我想将脚本的结果保存到文件中。脚本示例:
#!/usr/bin/env python
i=0
while i<10:
a=raw_input('Write a number')
print 'Result%s'%str(2*a)
i+=1
我想保存到文件打印值。我知道我可以在脚本f=open()...
中执行此操作,但我想使用终端中的输出来执行此操作。我读到我可以使用模块subprocess
,但我不知道它是正确的。
答案 0 :(得分:10)
IMO这是正确的pythonic方式,没有依赖系统shell:
import sys
f = open("test.out", 'w')
sys.stdout = f
print "test"
f.close()
在python中,您可以更改默认的stdout
对象。你只需要为sys.stdout
分配你想要的任何东西。我认为该对象只需要定义write
方法(但不是绝对确定)。
这样做:
import sys
f = open("test.out", 'w')
sys.stdout = f
i=0
while i<10:
a=raw_input('Write a number')
print 'Result%s'%str(2*a)
i+=1
f.close()
与0605002建议支持他使用的语法的系统基本相同,但是在纯python中实现并且应该更便携。
更多的pythonic方式,根据评论建议:
import sys
with open("test.out", 'w') as f:
sys.stdout = f
i=0
while i<10:
a=raw_input('Write a number')
print 'Result%s'%str(2*a)
i+=1
当然,您可以重构您的“客户端代码”并使其成为一种功能。
答案 1 :(得分:9)
您可以使用终端中的>
将输出重定向到文件:
python your_script.py > output.txt
答案 2 :(得分:1)
python file.py &> out.txt
这会将所有输出(包括错误)定向到out.txt。