Python在写入另一个html文件时不打印特殊字符(从html文件中提取)

2024-03-28 10:13:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从一个html文件中提取数据,并使用.replace将其输出到另一个html文件模板。我这样写,双击我的脚本,页面在浏览器中打开,准备打印。你知道吗

一切正常,直到我遇到一个提取字符串,其中有一个特殊的字符。双击时,不会发生任何事情(web浏览器不会打开)。然而,当我直接从空闲状态运行它时,它似乎起作用了,但有一个问题:这个特殊的角色是一个奇怪的角色组合。你知道吗

我还没有用其他特殊字符测试过这个,但我现在的问题发生在Nyström上,它在我输出的文件中显示为NystrÃm。你知道吗

我认为这与utf-8中的编码/解码有关,但是我对这个主题了解不够,无法在研究后亲自解决这个问题。你知道吗

当我打开读写文件时,我确保它们的第三个参数是encoding='utf-8'。你知道吗

最后,当我把我遇到问题的字符串打印到IDLE上时,结果很好。当我把它写进我的文件时,这个问题似乎突然出现了。你知道吗

下面是我的文件读取和写入调用,如果这有帮助

path = os.path.dirname(os.path.realpath(__file__))
htmlFile = open(path + input_filename, "r", encoding="utf-8")
htmlString = htmlFile.read()

infile = open(template_path, 'r', encoding='utf-8')
contents = infile.read()

在这之后,我用提取的字符串替换内容的某些部分,并将其放入名为data的字典中。 如: (请忽略不一致的命名约定)

data = dict()
data['name_email'] = email    
contents = contents.replace('_name_email', data['name_email'])

然后:

outfile = open(output_filename, 'w', encoding='utf-8')
outfile.write(contents)

我在python3.6上运行这个


Tags: 文件path字符串name角色dataemailhtml