总结写在前面:
python读取文件文件时,如果出现 'gbk' codec can't decode byte 0xac in position 7482: illegal multibyte sequence编码错误
在读取文件的后面加一个b表示用二进制文件的格式打开with open(path,'rb') as file
假设读取出来的文件放在line里面,我们要使用line时,需要解码decode
line.decode()
今天拿到一个文件,里面的东西是这样的
^https?://[^/]+/$ 10050
^https?://[^/]+/?(\?|$) 10040
^https?://[^/]+/.*\.(php|aspx|asp|jsp|do|dwr|cgi|fcgi|action|ashx|axd|json)(\?|$) 6997
^https?://[^/]+/(([^/]+/)*[^(.|/|?)]+($|\?)|([^/]+/)*$) 5394
^https?://[^/]+/.*(\?|$) 5348
大概有接近十万条,我只需要里面的那些每条前面的正则表达式,后面出现的数字怎么出来的我也不知道,
总之我就需要把每条后面的数字去掉,比较庆幸的是每串数字前面都有几个tab空格,于是就可以想到用Python读取文件然后用.split('\t'),想得倒是很简单,做起来却没有那么顺利,python3的编码问题搞得新手有点烦。
下面贴出代码
def func(path):
result = []
with open(path,'rb'