Я работал над простым проектом, где я мог бы писать специальные символы без альтернативных кодов, и я получил эту классную ошибку, когда мой код печатался без оператора печати.
n = 1
while n < 6:
backup = open(n, 'r+')
active = open('German' + str(n) + '.txt', 'r')
backup.truncate(0)
backup.seek(0)
backup.write(textconvert(active.read()))
backup.close()
active.close()
n += 1
Моя программа неработать так, как я ожидал, поскольку резервные копии (1.txt, 2.txt ... 5.txt) были такими, как я их оставил (пусто), но распечатал, что будет в первых двух резервных копиях, и я нашел инкриминирующую строку:
backup = open(n, 'r+')
Мой вопрос: почему это приводит к тому, что что-то печатается на возвышенном тексте 3?Я выяснил, что напечатаны только первые два файла, где n = 1,2.
backup = open(str(n) + '.txt', 'r+')
Этот код работает, поэтому он должен быть причиной этих проблем.
def textconvert(text):
text = text.replace('//a', 'Ä')
text = text.replace('//o', 'Ö')
text = text.replace('//u', 'Ü')
text = text.replace('/a', 'ä')
text = text.replace('/o', 'ö')
text = text.replace('/u', 'ü')
text = text.replace('/s', 'ß')
return text.strip()
И этоэто определение, если оно что-то меняет.