gpt4 book ai didi

python 将 Analytics 代码插入到所有文件中

转载 作者:行者123 更新时间:2023-12-03 01:30:07 25 4
gpt4 key购买 nike

我试图将谷歌分析脚本插入到我的所有 HTML 页面中,但是当我再次运行该脚本时,文件的内容会重复。

为什么我的脚本会复制文件内容并将其附加到文件末尾?

如何将分析脚本添加到所有没有分析脚本的文件中?

import fnmatch
import os

track_code = """
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-48664735-1', 'kylelk.github.io');
ga('send', 'pageview');

</script>
"""


matches = []
for root, dirnames, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, '*.html'):
matches.append(os.path.join(root, filename))

for file_name in matches:
try:
html_file=open(file_name, "r+")
html_data = html_file.read()
if "</head>" in html_data and not "UA-48664735-1" in html_data:
print file_name
html_data1=list(html_data)
#find index of closing "head" tag
html_data1.insert(html_data.find("</head>"), track_code)
html_file.write("".join(html_data1))
html_file.close()

elif "</HEAD>" in html_data and not "UA-48664735-1" in html_data:
print file_name
html_data1=list(html_data)
html_data 1.insert(html_data.find("</HEAD>"), track_code)
html_file.write("".join(html_data1))
html_file.close()
except IOError:
pass

最佳答案

基本上,您在这里所做的是:1.以读/写模式打开文件2.读取整个文件内容,将内部文件指针定位在文件末尾3. 在当前文件指针的位置(即文件末尾)重写全部内容(添加脚本)。

想要做的是替换文件的内容。最简单、最安全的解决方案是:

  1. 以只读方式打开文件
  2. 阅读并关闭它
  3. 将脚本添加到内容中
  4. 以写入模式重新打开文件并写入新内容。

现在,由于更新的内容将比原始内容长,因此您也可以在写入之前重新定位内部文件指针(使用 file.seek(0)

关于python 将 Analytics 代码插入到所有文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22333149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com