网页字符串批量替换
一个网站的网页中,往往有一些代码结构一致的字符串,比如页头、页尾、导航栏、菜单等,如果网站结构进行了调整,往往需要批量修改相关内容,手动修改费事费力也易错,通过python程序进行修改则比较方便。
1)打开并读入字符串文件:
网页文件就是由一系列字符串组成的,至于字符串的编码可以有多种,python中可以指定代码来打开文件:
为了能对文件中的字符串进行查找并改写,需要使用读写方式打开,而encoding选项则指定了文件的编码方式,对于中文网页,一般使用utf-8或gb18030,而gb2312包含的中文字较少,一般不再使用。
网页文件一般并不是很大,可以一次性全部读入并赋值给一个变量:
因为前面是使用追加方式打开的文件,打开后文件指针会在文件尾部,一般需要先将文件指针设置到头部,然后再读取文件:
这样就可以在这个变量中查找特定的字符串,并进行更改和替换了。
2)字符串中查找指定子串并替换:
python中,在一个字符串中查找字串并进行替换可以使用方法:
上述方法是在content中查找a,如果找到就替换为b,并返回一个新字符串new。
可以在使用前定义需要查找的字串a,及需要替换为的字符串b,然后就可以使用了。如果有多个字符串需要更改,可以多次使用replace()方法。
3)字符串写回文件中:
字符串替换完成,然后需要将新得到的字符串写回文件,可以使用:
因为此前是使用追加方式打开的文件,因此写入文件前需要把文件指针返回文件头,并销毁原文件中的内容,然后再写入:
写入完成,最后需要关闭文件:
因为打开及读写文件,可能会出现一些异常,一般需要使用try-catch-finally结构来处理,要将关闭文件写在finally部分中。
1)打开并读入字符串文件:
网页文件就是由一系列字符串组成的,至于字符串的编码可以有多种,python中可以指定代码来打开文件:
file=open(path, 'a+',encoding='utf-8',errors='ignore')
为了能对文件中的字符串进行查找并改写,需要使用读写方式打开,而encoding选项则指定了文件的编码方式,对于中文网页,一般使用utf-8或gb18030,而gb2312包含的中文字较少,一般不再使用。
网页文件一般并不是很大,可以一次性全部读入并赋值给一个变量:
因为前面是使用追加方式打开的文件,打开后文件指针会在文件尾部,一般需要先将文件指针设置到头部,然后再读取文件:
file.seek(0)
content=file.read()
这样就可以在这个变量中查找特定的字符串,并进行更改和替换了。
2)字符串中查找指定子串并替换:
python中,在一个字符串中查找字串并进行替换可以使用方法:
new=content.replace(a,b)
上述方法是在content中查找a,如果找到就替换为b,并返回一个新字符串new。
可以在使用前定义需要查找的字串a,及需要替换为的字符串b,然后就可以使用了。如果有多个字符串需要更改,可以多次使用replace()方法。
3)字符串写回文件中:
字符串替换完成,然后需要将新得到的字符串写回文件,可以使用:
file.write(new)
因为此前是使用追加方式打开的文件,因此写入文件前需要把文件指针返回文件头,并销毁原文件中的内容,然后再写入:
file.seek(0)
file.truncate()
file.write(b)
写入完成,最后需要关闭文件:
file.close()
因为打开及读写文件,可能会出现一些异常,一般需要使用try-catch-finally结构来处理,要将关闭文件写在finally部分中。