用python将txt文件拆分成多个小文件
txt文件本身为由逗号区分开的连续字符串,字符串均为链接,因此一般特征也比较明显,文件如下:
首先想到方法是用with open read函数获取文件信息,通过’,‘来拆分各个url,按照url域名来得到小文件名,从而完成文件拆分,但此时得到的小文件可读性很差,经过查询得知,可将此时各url较共同的后缀替换为原字符+’<br>’,并另存为htm文件,浏览器打开另存文件,即可得到每个url一行的呈现。基本预期达到,但是方法原始,手工操作很多。
后来经过查询试验,调整为一下思路:
利用with open read函数获取文件信息,此时指定编码为utf-8,利用split函数分解连续字符串,以每个逗号为标志拆分后传到到列表中,
利用循环按照每个链接字符串中‘//..**/‘主要域名部分来区分不同小文件范围,并将域名作为小文件名称,此时循环界定文件内容范围方式采用某域名
与其后域名是否一致来判断是否同属一个文件,每个循环结束令写入文件的列表置空,重新传入文件内容。
1.源文件编码格式不为utf-8,重新修改另存尝试无果,遂在with open和write时引用encoding参数指定传来编码为utf-8
2.正则表达式匹配字符’//‘与’/‘时可以直接匹配,上述两种字符并不是需要转义的字符,其次findall基于贪婪匹配,返回字符串包括太多不合适字符,用’.+?‘得到0或者1个满足条件的字符串即可实现
3.循环迭代获取列表中某元素其后一个元素内容采用列表.index获取当前元素下标,利用切片获取下一个元素即可,当下个元素下标已超出列表长度,定义特殊值
4.写入文件时,每个列表元素再添加’\n’换行符来实现换行,提升可读性。
代码如下:
其中深层缘由也不甚清楚,这里只是分享实践试出来的一种方法