重复search和replace不断变化的文件。 python

所以我想要一个脚本,每3秒钟读一个文本文件,清理它,写入另一个文本文件。 原始文本文件总是在变化。 它来自音乐播放节目,当前歌曲标题。 我在互联网上收集了一些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”字,整行就会被删除。 虽然每个“行replace”条目都没有任何内容replace这些单词,正如它们应该的那样。 这是我的脚本。

 # -*- 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() 

当原始文件被修改时,文件引用intext不再是一个有效的文件。 虽然路径相同,但实际文件已被修改。 因此,你应该在for循环结束时调用intext.close() 。 要确保它实际上是重新创建文件引用,请确保只在sleep之外sleep