学习wp主题的时候看到了几个自定义的action,因为主题文件较多,随手点了几个都不对,逐渐红温,忽然想起来python可能会有对应的模块吧,毕竟“人生苦短,我用python”嘛。
要说ai搜索这东西,方便确实是方便,一搜索直接把示例程序也给提供了,稍微修改一下就直接可以运行,但对于自己做内容的小站点来说,就不那么友好了,人为刀俎我为鱼肉,最终沦为了“搜索资源”与“训练物料”。可能是博主的python版本较低的原因,在print的时候没法加f
前缀直接在引号内打印变量,所以老老实实用+
号连接了。
import os
def search_directory_content(directory):
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, 'r') as f:
content = f.read()
# 在这里添加你的搜索逻辑,例如:
if 'zakra_action_after_content' in content:
print("Found in " + file_path)
# 调用函数
search_directory_content('./zakra')
运行程序后,很快就得到了结果。
python3的错误信息
在公司电脑上跑得好好的程序,回家跑的时候报了这样一个错误。其原因是含有无法编码的字符;
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence
附上修改后的代码:
import os
def search_directory_content(directory):
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, 'r',encoding='gb18030',errors='ignore') as f:
content = f.read()
# 在这里添加你的搜索逻辑,例如:
if 'add_theme_support' in content:
print("Found in " + file_path)
# 调用函数
search_directory_content('./zakra')
关于gb18030的小贴士
GB18030是中国制定的汉字集编码规则的国际标准,想要更好的了解这套标准需要清除的知道其演化过程:
1980年,GB2312—80(我国的第一套汉字集标准),共包含7445个字符,其中6763个常用汉字;1995年,GBK,由GB2312—80(和港、台两种标准)扩展而来,共包含21886个字符,其中常用汉字14240个。GB2312—80和GBK都只包含一个字节和双字节汉字,直到GB18030—2000产生,汉字标准字符集继续扩展,又增加了6351个字符,其中一部分为4字节字(four-byte encoding range)。目前最新的国家汉字标准是GB18030—2005,在上述基础上又增加了六种少数民族语言和一些四字节字。
在Unicode产生之前,各国的标准基本都是各自为主,自己制定自己的那一套,谁也不服谁,彼此之间不通用,也别想着转换,由于历史原因,汉字就相对复杂,有三套标准共存,GB2312—80是中国大陆的,Big5是中国台湾的,HKSCS是中国香港的。这三套标准并不通用,彼此的编码在底层没办法转换。那个年代只要写出一套能够在桌面显示简体和繁体的软件就可以卖大钱。
其实这种混论并不局限于国内,在世界范围来说也非常的不利于文化交流。值得一提的是,进过每个国家都有自己的标准,但是所有的便准的制定都是在ASCII的基础上的,这也一定程度上为Unicode的诞生和标准化奠定了基础。
乱不能久,统一才是大趋势,于是Unicode应运而生,在Unicode诞生后,建立与其上的GBK和GB18030称为汉字的国际标准,结束了汉字有三套标准的混乱局面。GB18030是GBK的超集,也就是包含的字符要比GBK多。不过像微软的windows口和一些公司的Linux系统中的内嵌的中文编码都是GBK。其实GB18030比GBK中多出来的字符不是很常用,里面包含的主要是一些少数民族语言和一些韩语和维族语言。