我想定期检查某个单词是否已使用python保存到文本文件中。每当我运行该函数时,它都会删除文本文件中的任何内容,无论我告诉它具体是什么。
import threading
def ban():
threading.Timer(0.1, ban).start()
ff=open("htfl.txt","r")
liney = ff.readlines()
ff.close()
ff=open("htfl.txt","w")
for line in liney:
if line!=("HTFL"):
liney = liney[:-1]
print("true")
ban()
它必须每隔几秒运行一次,因为它是我工作的即时通讯工具的一部分,应该禁止粗鲁的单词或某些用户名。
答案 0 :(得分:1)
import threading
def ban():
threading.Timer(0.1, ban).start()
ff=open("htfl.txt","r")
liney = ff.readlines()
ff.close()
ff=open("htfl.txt","w")
for line in liney:
if line!=("HTFL"):
ff.write(line)
ban()
您在写入模式下打开了原始文件,删除了所有内容。所以你必须重写每一行。同样做liney[:-1]
没有意义,因为你的目标是摆脱特定的行,而不是盲目地复制除第一行之外的所有内容。
答案 1 :(得分:1)
您可以使用fileinput
模块就地编辑文件:
import threading
import fileinput
import time
def ban():
for line in fileinput.input('htfl.txt', inplace=True):
if line.rstrip() != "HTFL":
print line,