python批量操作txt文件并修改其中内容

可紊 提交于 2019-12-09 23:13:28

任务要求

对大量txt格式的小说删除其中网址

解决思路:

列出目录下的全部文件

读取文件

将文件中网址替换(全为中文小说,可直接替换掉英文)

写入新文件

删除旧文件

源码

import re
import os
txtlist=os.listdir("C:\\Users\SAMSUNG\PycharmProjects\LoadBaiDu\\txt\\novel") #列出目录下的全部文件
for d in txtlist:
    if(d.endswith("t")):
        file=open("novel\\"+d,"r",encoding="gbk",errors="ignore") #编码问题
        file1=open("novel\\ "+d,"w")
        for i in file.readlines():
            file1.write(re.sub(r"[a-zA-z]","",i)) #正则表达式匹配字母
        file1.close()
        file.close()
        print(d)
        os.remove("novel\\"+d)

问题解决

用python的时候经常会遇到文本的编码与解码问题,其中很常见的一种解码错误如题目所示,下面介绍该错误的解决方法,将‘gbk’换成‘utf-8’也适用。
(1)、首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’);
(2)、若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’);
(3)、若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:open(‘1.txt’,encoding=’gb18030’,errors=‘ignore’);
(4)、还有一种常见解决方法为open(‘1.txt’).read().decode(‘gb18030’,’ignore’)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!