在IDLE中写文件并显示结果

0 投票
1 回答
1293 浏览
提问于 2025-04-17 15:20

我想处理一个文本文件,并希望在IDLE(一个编程环境)中看到输出,同时也把结果保存到一个文本文件里。因为文本格式的问题,我需要在打印的时候使用print函数里的(end = '')这个设置。我在寻找一种方法,可以同时在print函数中使用"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 个回答

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()

撰写回答