如何在HTML文件中替换变音符?



我正试图通过一堆html文件,并替换所有的小写字母与他们的相应html代码。由于某些原因,下面显示的代码的输出与输入完全相同,我不知道为什么。

import PySimpleGUI as sg
import pathlib

def ui_input():
file_address = None
layout = [[sg.Text("File: "), sg.InputText(key="-FILE_PATH-"), sg.FileBrowse(file_types=[("Html Files", ".*html")])],
[sg.Submit('Convert'), sg.Cancel('Cancel')]
]
window = sg.Window('Html Umlaut Converter', layout)
event, values = window.read()
if event == 'Cancel':
quit()
elif event == 'Convert':
file_address = values["-FILE_PATH-"]
window.close()
return file_address

def convert():
duden = {"ä": "ä", "Ä": "Ä", "ö": "ö", "Ö": "Ö", "ü": "ü", "Ü": "Ü", "ß": "ß"}
file_address_pre = ui_input()
fap = pathlib.Path(file_address_pre)
file_address_post = fap.parent / (fap.stem + "_converted" + fap.suffix)
for i in duden:
print(i, duden[i])
with open(file_address_pre, 'r') as prefile:
predata = prefile.read()
print("pre: ", predata)
postdata = predata.replace(str(i), str(duden[i]))
print("post: ", postdata)
with open(file_address_post, "w") as postfile:
postfile.write(postdata)

convert()

您正在为字典中的每个字母覆盖输出文件。运行该代码应该替换原始文本中出现的字符,但不能替换其他字符。如果你想替换每一个特殊的字母,试着这样做:

def convert():
duden = {"ä": "ä", "Ä": "Ä", "ö": "ö", "Ö": "Ö", "ü": "ü", "Ü": "Ü", "ß": "ß"}
file_address_pre = ui_input()
fap = pathlib.Path(file_address_pre)
file_address_post = fap.parent / (fap.stem + "_converted" + fap.suffix)
with open(file_address_pre, 'r') as prefile:
predata = prefile.read()
print("pre: ", predata)
postdata = predata
for i in duden:
print(i, duden[i])
postdata = postdata.replace(str(i), str(duden[i]))
print("post: ", postdata)
with open(file_address_post, "w") as postfile:
postfile.write(postdata)

最新更新