[Tutor] saving output data in a file

Dave Kuhlman dkuhlman at rexx.com
Sat Dec 5 02:05:04 CET 2009

On Fri, Dec 04, 2009 at 01:13:42PM +0530, Prasad Mehendale wrote:
> I am a beginner. I want to save the output data of the following programme in 
> a file through the programme. Please suggest me the way. I am using Python 
> 2.3.3 on mandrake linux 10 and using "Idle" to save the output to a file 
> presently. 
> Thanks in advance.
> #programme to calculate various parameters for a dc-generator.
> import math
> #import os
> #flux is assumed to be .005Wb, and A=parallel paths = 2 for wave winding
> polerpm=[]
> for ConductorsPerSlot in range(1,11):
>     """ we consider that output voltage is 20 V DC """
>     PoleRpmProduct=20000/ConductorsPerSlot
>     polerpm.append(PoleRpmProduct)
> print '(Pole*RPM) product for various values of conductors/slot is: \n', 
> polerpm
> for poles in range(2,18,2):
>     print
>     print '\n For number of poles='+str(poles) +'  RPM values are: '
>     for i in range(len(polerpm)):
>                    rpm=polerpm[i]/poles
>                    print rpm,

Another suggestion is to define a class that contains a method
named "write" which takes one argument which is the text to be

This approach is useful when there are print statements in code
that is not under your control, for example imported modules.

There is a note about this here:


Here is an example:

# ================================================
import sys

class Redirect(object):
    def __init__(self, filename):
        self.outfile = open(filename, 'w')
        self.count = 0
    def write(self, msg):
        self.count += 1
        self.outfile.write('%d %s\n' % (self.count, msg, ))
    def close(self):

def test():
    print 'starting'
    save_stdout = sys.stdout
    redir = Redirect('/tmp/tmp1.txt')
    sys.stdout = redir
    print 'something'
    print 'something else'
    sys.stdout = save_stdout
    print 'finished'

# ================================================

A few notes:

- Be sure to close or flush the file.

- The chunks passed to your write method may not be whole lines.

- Dave  

> -- 
>      --prasad mehendale
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

Dave Kuhlman

More information about the Tutor mailing list