尝试处理文本文件,并希望看到空闲时的输出以及重定向到文本文件。由于文本格式化,我需要在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)
答案 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()