How to write output of terminal to file
You can redirect the output to a file using >
in terminal:
python your_script.py > output.txt
IMO this is the correct pythonic way, with-out relying on the system shell:
import sys
f = open("test.out", 'w')
sys.stdout = f
print "test"
f.close()
In python you can change what is the default stdout
object. You just need to assign whatever you want to sys.stdout
. I think the object just need to have a write
method defined (not absolutely sure, though).
This would do:
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()
It's essentially the same what 0605002 suggests for systems that support syntax he uses, but realized in pure python and should be more portable.
Even more pythonic way, as per comment suggestion:
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
Of course you can refactor your "client code" and make it a function or something.