python - 用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: 在文件的每一行。
解决方案
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()
文件。
推荐阅读
- reactjs - 从按钮调用时反应渲染没有改变
- r - 因子错误(数据集 $ 名称,级别 = c(“扎克威尔逊:杰伦吉普森”),:无效的“标签”;长度 269 应为 1 或 1
- r - 识别空间点是否在空间多边形中
- php - 将子元素值作为 json 从数据库中的 xml 插入
- sql - 如何删除重复的日期时间并将一列值转换为新的列名?
- sql - 如何连接表是sql?
- ffmpeg - ffprobe 使用小写或大写的格式标签
- java - 如何使用 Selenium 从 xpath 中删除特殊字符?
- haskell - tup :: [String] -> [(Int, Int)]
- php - Laravel 多对多 - 不同的数据库