Python重定向到文件

 

1.方式1

__file__ = open(r'log.txt', 'a')
print >>__file__, "hello, world!"
__file__.close()

 

2.方式2

__stdout__ = sys.stdout
sys.stdout = open(r'log.txt', 'a')
print "hello, world!"
sys.stdout.close()
sys.stdout = __stdout__

 

3.方式3

#-*- coding:utf8 -*-
import sys

class stdout:
    def __init__(self):
        self.buff = []
        self.__file__ = open(r'log.txt', 'a')
        self.__stdout__ = sys.stdout

    def write(self, s):
        self.buff.append(s)
        self.__file__.write(s)
        self.__file__.flush()
        self.__stdout__.write(s)

    def flush(self):
        self.buff = []
        self.__stdout__.flush()

    def close(self):
        self.__file__.close()

    def reset(self):
        sys.stdout = self.__stdout__

if __name__ == '__main__':
    sys.stdout = stdout()

    for i in xrange(10):
        print "hello, world!"

    sys.stdout.close()
    #sys.stdout.__file__.close()
    sys.stdout.reset()
    #sys.stdout = sys.stdout.__stdout__
    
    print "im back!"

 

posted @ 2015-06-29 19:37  lichmama  阅读(3360)  评论(0编辑  收藏  举报