写文件&显示空闲的结果

时间:2013-02-09 08:16:44

标签: python python-3.x

尝试处理文本文件,并希望看到空闲时的输出以及重定向到文本文件。由于文本格式化,我需要在print函数中保持语句(end ='')。我正在寻找一种与打印功能同时使用“end =''”和“file = output_file”的方法。

import re
input_file = open ('E:\input.txt','r')
output_file = open ('E:\output.txt','w')

for line in input_file:
        if re.match('ab|cd', line):
                print ('line with ab or cd: ', end = '',file=output_file )
                print (line, end = '',file=output_file)
                print ('  --------', file=output_file)
                print ('  --------',file=output_file)
                print ('!',file=output_file)
        else:
                print (line,file=output_file)

1 个答案:

答案 0 :(得分:3)

要使用单个print()写入多个地方,您可以定义类似文件的对象:

class TeeFile(object):
    def __init__(self, *files):
        self.files = files
    def write(self, data):
        for f in self.files:
            f.write(data)
    def flush(self):
        for f in self.files:
            f.flush()

示例:

import sys

file = TeeFile(sys.stderr, output_file)
print("abc", end="", file=file)
file.flush()