日常需要把谷歌跟踪代码加入到head元素里面,所以借助AI写了一个小工具。
1、把需要加入的内容保存到GACode.txt 文件中
2、执行代码,输入目录即可。(只会修改html扩展名的文件)
代码
import os
import re
import sys
from pathlib import Path
def get_resource_path(relative_path):
"""获取资源文件的绝对路径,支持PyInstaller打包"""
try:
# PyInstaller创建临时文件夹,并将路径存储在_MEIPASS中
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
def check_and_add_google_analytics():
"""
检查所有HTML文件是否包含Google Analytics代码,如果不存在则添加
"""
# 初始化统计信息
stats = {
'total': 0,
'modified': 0,
'skipped': 0,
'errors': 0
}
# 从GACode.txt文件读取Google Analytics代码
ga_code_file = get_resource_path('GACode.txt')
try:
with open(ga_code_file, 'r', encoding='utf-8') as f:
ga_code = f.read().strip()
except FileNotFoundError:
print(f"错误:找不到文件 {ga_code_file}")
stats['errors'] = 1
return stats
except Exception as e:
print(f"错误:读取GA代码文件时出错: {str(e)}")
stats['errors'] = 1
return stats
if not ga_code:
print("错误:GA代码文件为空")
stats['errors'] = 1
return stats
# 获取当前目录下所有HTML文件
html_files = list(Path('.').glob('*.html'))
stats['total'] = len(html_files)
print(f"找到 {len(html_files)} 个HTML文件")
for html_file in html_files:
print(f"\n处理文件: {html_file}")
try:
# 读取文件内容
with open(html_file, 'r', encoding='utf-8') as f:
content = f.read()
# 检查是否已经包含Google Analytics代码
if 'googletagmanager.com/gtag/js' in content:
print(f" ✓ {html_file} 已包含Google Analytics代码,跳过")
stats['skipped'] += 1
continue
# 查找</head>标签的位置
head_end_pattern = r'</head>'
match = re.search(head_end_pattern, content, re.IGNORECASE)
if not match:
print(f" ✗ {html_file} 未找到</head>标签,跳过")
stats['errors'] += 1
continue
# 在</head>标签前插入Google Analytics代码
head_end_pos = match.start()
new_content = (
content[:head_end_pos] +
' ' + ga_code + '\n' +
content[head_end_pos:]
)
# 写入修改后的内容
with open(html_file, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f" ✓ {html_file} 已成功添加Google Analytics代码")
stats['modified'] += 1
except Exception as e:
print(f" ✗ 处理 {html_file} 时出错: {str(e)}")
stats['errors'] += 1
print("\n处理完成!")
return stats
if __name__ == "__main__":
try:
# 获取用户输入的目录路径
current_dir = input("请输入要处理的目录路径: ").strip()
# 如果用户没有输入,则使用当前目录
if not current_dir:
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
# 切换到指定目录
try:
os.chdir(current_dir)
except FileNotFoundError:
print(f"错误:目录 '{current_dir}' 不存在")
input("\n按回车键退出...")
exit(1)
except PermissionError:
print(f"错误:没有权限访问目录 '{current_dir}'")
input("\n按回车键退出...")
exit(1)
# 检查是否在包含HTML文件的目录中
html_files = list(Path('.').glob('*.html'))
if not html_files:
print("当前目录下没有找到HTML文件,请确保在正确的目录下运行此脚本")
input("\n按回车键退出...")
exit(1)
# 执行添加Google Analytics代码的操作
stats = check_and_add_google_analytics()
# 检查返回值是否有效
if stats is None:
print("\n⚠ 函数执行异常,无法获取统计信息")
stats = {'total': 0, 'modified': 0, 'skipped': 0, 'errors': 1}
# 显示统计结果
print("\n=== 执行统计 ===")
print(f"总文件数: {stats['total']}")
print(f"成功修改: {stats['modified']} 个")
print(f"已存在跳过: {stats['skipped']} 个")
print(f"处理失败: {stats['errors']} 个")
if stats['modified'] > 0:
print(f"\n✓ 成功为 {stats['modified']} 个HTML文件添加了Google Analytics代码!")
elif stats['total'] > 0 and stats['skipped'] == stats['total']:
print("\n✓ 所有HTML文件都已包含Google Analytics代码,无需修改。")
else:
print("\n⚠ 没有成功修改任何文件,请检查文件格式或权限。")
print("\n=== 程序执行完成 ===")
input("\n按回车键退出...")
except KeyboardInterrupt:
print("\n\n程序被用户中断")
input("\n按回车键退出...")
except Exception as e:
print(f"\n程序执行时发生未知错误: {str(e)}")
input("\n按回车键退出...")

