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 に答える