该程序应该用不同的字母替换字母ö,ä,õ,ü。完成一行后,它产生一个空行,我不知道为什么。我试图理解它已经有一段时间了,但我真的不明白为什么它不能给我想要的输出。
f = input("Enter file name: ")
file = open(f, encoding="UTF-8")
for sentence in file:
sentence = sentence.upper()
for letter in sentence:
if letter == "Ä":
lause = sentence.replace(letter, "AE")
elif letter == "Ö" or täht == "Õ":
lause = sentence.replace(letter, "OE")
elif letter == "Ü":
lause = sentence.replace(letter, "UE")
print(sentence)
答案 0 :(得分:1)
读取每一行包括尾随换行符。您的print(sentence, end='')
还包含换行符,因此您将获得一个空行。请尝试filename = input("Enter file name: ")
with open(filename, encoding="UTF-8") as f_input:
for sentence in f_input:
sentence = sentence.upper()
for letter in sentence:
if letter == "Ä":
lause = sentence.replace(letter, "AE")
elif letter == "Ö" or täht == "Õ":
lause = sentence.replace(letter, "OE")
elif letter == "Ü":
lause = sentence.replace(letter, "UE")
print(sentence, end='')
,如下所示:
with open(...
注意:使用# -*- coding: utf-8
filename = input("Enter file name: ")
replacements = [('Ä', 'AE'), ('ä', 'ae'), ('Ö', 'OE'), ('ö', 'oe'), ('Õ', 'OE'), ('õ', 'oe'), ('Ü', 'UE'), ('ü', 'ue')]
with open(filename, encoding='utf-8') as f_input:
text = f_input.read()
for from_text, to_text in replacements:
text = text.replace(from_text, to_text)
print(text)
之后也会自动关闭您的文件。
您可能还想考虑以下方法:
userObject
这样就可以在整个文本中进行替换,而不是逐行替换。它也保留了这个案例。
答案 1 :(得分:1)
我不会修复你的程序,只是试着回答为什么它不能达到预期目的: