2016-07-28 8 views
0

特定の単語のテキストを解析するプログラムを作成していますが、これらの単語が見つかった場合は、そのあとに4行を印刷してから検索します次のシーケンスと同じことをします。対話的なターミナルでプリントを使用すると、それは動作し、一致するすべてのキーワードを出力しますが、テキストファイルに書き込もうとすると、1つのシーケンスを書き込んで閉じます。なぜ、どのように私は4行の代わりにテキストファイル内の端末に表示されているフルテキストを印刷することができますか? wフラグが「ファイルの内容を切り捨てて、そこに以下の内容を書く」ためにオープン伝えることPythonのテキストファイルにフルテキストが印刷されない

for j in os.listdir(path): 
if os.path.isfile(os.path.join(path,j)) and 'nameoffile' in j: 

print '\n' 
print j 
print '\n' 
os.chdir(os.path.expanduser("~/Downloads/Windowslogs")) 
file = open(j, 'r') 
codes = 'error ' 
for line_app in appenforce_file: 
    if codes in line_app: 
    #print (line_app + ''.join(islice(appenforce_file, 4))) 
    with open("streamedlog.txt", 'w') as f: 
    f.write(line_app + ''.join(islice(appenforce_file, 4))) 
+0

インデントを修正します。インデントするには複数のスペースを使用してください(4つ優先)。そうしないと、コードを読みにくくなります。あなたの字下げの部分はPythonにとっては間違っています。 –

+0

ありがとう、私はプログラミング/スクリプティングの世界に新しいです、今、私のインデントを変更します、ありがとう! –

答えて

0

with open("streamedlog.txt", 'w') as f:

。ループを開始する前にファイルを開くか、複数回開くことを避けてください。ファイルを追加するには、代わりにaフラグを使用する必要があります。

+0

ありがとうございます!私はループの前にオープンを移動し、すべてを印刷しています! :) –

関連する問題