首页 > 解决方案 > 用re替换文件中的字符串

问题描述

我想使用 python 模块 re 快速取消文件中一些不重要的字符串。

我也用其他模块尝试过,各种循环和函数,但我能得到的只是找到字符串,而不是用 re.sub 替换它们。

import re

chat = open("chat.txt"
chatText = chat.read()

def deleteMetaData():
    for line in chatText:
        re.sub("\[\d\d\.\d\d\.\d\d,\s\d\d:\d\d:\d\d\]\sGian\sDogwiler:\s", "", line)

deleteMetaData()

没有错误消息或任何错误消息,什么都没有。我的目标是取消 [20.07.18, 20:23:09] Gian Dogwiler: 在文件的每一行。

标签: pythonregex

解决方案


re.sub()不会自动替换文件中的数据 - 您还需要将其写入文件。这个答案提供了一个很好的例子;我已经稍微修改了它以匹配您的代码。请注意,您的chat = open("chat.txt"线路上还缺少一个近括号。

import re

chat = open("chat.txt")
chatout = open("out.txt", "w")

def deleteMetaData():
  for line in chat:
    chatout.write(re.sub("\[\d\d\.\d\d\.\d\d,\s\d\d:\d\d:\d\d\]\sGian\sDogwiler:\s", "", line))

deleteMetaData()

chat.close()
chatout.close()

完成后不要忘记保存.close()文件。

在这里试试!


推荐阅读