0

试图处理文本文件并希望看到空闲的输出以及重定向到文本文件。由于文本格式,我需要在打印函数中保留语句(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)
4

1 回答 1

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()
于 2013-02-09T10:38:11.447 回答