python文本文件替换指定内容问题
本帖最后由 v.ki 于 2021-5-3 14:29 编辑求助大佬,救救孩子:就是只改变特定的文本
唯一要求:只能改变部分文本,因为文件很大,其他内容只读不写入 v.ki 发表于 2021-5-3 15:32
okok ,你知不知道还有什么办法可以弄得不,我给网站弄一个敏感词过滤,然后有一个很大的字典,但是肯定有 ...
给这些敏感值设个初始的权值,用户反馈哪个词就让哪个词的权值减一,同时检查权值是否为 0 ,为 0 就从字典中把该值删除。 既然你没发源码,那我只能猜了:
我的思路是:先读取旧文件的内容,再用replace替换,最后保存f = open('','r',encoding='utf-8')
f_n = open('text.txt','w',encoding='utf-8')
for line in f:
if '内容' in line:
line = line.replace('内容','替换后的内容')
f_n.write(line)
Py与C。。。 发表于 2021-5-3 14:44
既然你没发源码,那我只能猜了:
我的思路是:先读取旧文件的内容,再用replace替换,最后保存
这样写w会覆盖所有的,我也这么想的替换,但是老是实现不了,你编一个txt文本,试试我试了很多种都没成功 本帖最后由 hrp 于 2021-5-3 15:24 编辑
如果要替换的内容长度与原内容长度不一致,实现还是挺麻烦的。
按你的想法,对文件部分内容进行替换,但不全部重新写入,只写入部分内容,然后保存,是难以实现的,除非能实现更底层的磁盘操作,或者使用有此功能的库。
对于超大文件的内容更新,一般的方法是分段读取,内容替换,以追加方式写入新文件。对于内容替换部分,因为是分段读取,可能只包含要替换内容的一部分,会导致漏过,所以还要费些事去处理。
以上为个人想法。 hrp 发表于 2021-5-3 15:22
如果要替换的内容长度与原内容长度不一致,实现还是挺麻烦的。
按你的想法,对文件部分内容进行替换,但 ...
okok ,你知不知道还有什么办法可以弄得不,我给网站弄一个敏感词过滤,然后有一个很大的字典,但是肯定有些词本来不应该过滤,然后接收用户反馈,删除掉不应该过滤的词,也不能手动删除,有什么实现的思路没 v.ki 发表于 2021-5-3 15:32
okok ,你知不知道还有什么办法可以弄得不,我给网站弄一个敏感词过滤,然后有一个很大的字典,但是肯定有 ...
内存够不够大,够大就直接对它进行反序列化,让后按字典方法操作,最后再序列化,省事。
文件太大,那就切分若干个足够小的。
或许,可以考虑用第三方模块 filesplit
或 自己代码实现切分。
°蓝鲤歌蓝 发表于 2021-5-5 13:35
给这些敏感值设个初始的权值,用户反馈哪个词就让哪个词的权值减一,同时检查权值是否为 0 ,为 0 就从 ...
{:5_102:}可以可以,非常不错的思路
页:
[1]