Python:在文本文件中查找和删除字符串

时间:2017-02-20 23:08:37

标签: python

我想定期检查某个单词是否已使用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()

它必须每隔几秒运行一次,因为它是我工作的即时通讯工具的一部分,应该禁止粗鲁的单词或某些用户名。

2 个答案:

答案 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,