在IDLE中写文件并显示结果
我想处理一个文本文件,并希望在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()