2016-08-10 14 views
1

私は3秒ごとにテキストファイルを読み、クリーンアップし、別のテキストファイルとして書き込むスクリプトを作成しようとしています。元のテキストファイルは常に変更されています。これは、音楽プレイアウトプログラム、現在の曲のタイトルです。私はインターネットの周りにPythonコードのビットを収集し、自分のニーズにパーソナライズしました。今、私は完璧に動作するスクリプト、各コマンドとスケジューリングを持っています。しかし、元のファイルが再び変更されると、スクリプトはエラーを返します。どのようにこれを修正することができます任意のアイデア?絶え間なく変化するファイルを繰り返し検索して置き換えます。 Python

Traceback <most recent call last>: 
File "radio_script.py", line 29, in <module> 
    executeSomthing<> 
File "radio_script.py", line 10, in executeSomething 
    for line in intext: 
IoError: [Errno 9] Bad file descriptor 

私はWindowsでpythonスクリプトを実行しています。 スクリプトが実行されたときに、行に「delete_lin」という単語が含まれていると、行全体が削除されます。それぞれの「行置き換え」項目は、それらが想定していたとおり、これらの単語を何も置き換えません。 ここに私のスクリプトです。

# -*- coding: utf-8 -*- 
delete_lin = ['VP', 'VH', 'VT', 'VB', 'VS', 'BG'] 
import time 
import os 
def executeSomething(): 
    with open('current.txt', 'r') as intext, open('currentedit.txt', 'w') as outfile: 
     for line in intext: 
     if not any(delete_lin in line for delete_lin in delete_lin): 
      line = line.replace('(email)', "")       
      line = line.replace('_AO VIVO', "") 
      line = line.replace('Ao Vivo', "") 
      line = line.replace('AO VIVO', "") 
      line = line.replace('(04)', "") 
      line = line.replace('2016', "") 
      line = line.replace('2015', "") 
      line = line.replace('2014', "") 
      line = line.replace('2013', "") 
      outfile.write(line) 
      outfile.flush() 
      intext.flush() 
      print 'Pause' 
      time.sleep(3) 

while True: 
    executeSomething() 
+0

プログラムは 'for'ループから抜け出していますか?元のファイルの各行に対して3秒間寝ています。 –

+0

私はそれが出ると信じています。なぜなら、 "open with"の前に印刷コマンドを追加すると3秒間印刷されるからです。元のファイルには1行しかないので、各行のスリープは問題ではありません。それは私に問題を与えているものではありますか? –

+0

明快にするためには、ループの外側で 'sleep'ステートメントを必ず動かすべきですが、withショーの前に印刷すると問題はありません。その間にファイルを閉じていないため、有効ではなくなったファイルを読み込もうとしている可能性があります。ループの後に 'intext.close()'を追加してみてください。 –

答えて

1

元のファイルが変更された場合、ファイル参照intextは有効なファイルではなくなりました。パスは同じですが、実際のファイルは変更されています。したがって、forループの最後にintext.close()を呼び出す必要があります。実際にファイル参照を再作成していることを確認するには、ループ外のsleepのみを確認してください。

関連する問題