Python:- прочитать текстовый файл и преобразовать его в верхний регистр и записать во второй файл
Прочитайте текстовый файл и преобразуйте его в верхний регистр и запишите второй файл.
fo = open('/home/venkat/Desktop/Data Structure/Python/test.txt', 'r')
for x in fo.read():
y = x.upper()
fo1 = open('/home/venkat/Desktop/Data Structure/Python/write.txt', 'a')
fo1.write(y)
Содержание test.txt:- Меня зовут Венкатеш
Правильный вывод: - МОЕ ИМЯ ВЕНКАТЕШ
Я получаю: - H МОЕ ИМЯ ВЕНКАТЫ
H не идет на последнем месте, скорее он перемещает первый символ на второй. Зачем?
2 ответа
Решение
Проблема в том, что вы больше не закрываете свои файлы. Данные пишутся только точно, когда файлы закрыты. Поскольку вы открыли новый файл для каждого символа и не закрываете файлы явно, порядок написанных символов не является детерминированным.
Открытые файлы с with
Оператор гарантирует, что файлы правильно закрыты:
with open('/home/venkat/Desktop/Data Structure/Python/test.txt', 'r') as inp:
y = inp.read().upper()
with open('/home/venkat/Desktop/Data Structure/Python/write.txt', 'a') as out:
out.write(y)
Добавить символ новой строки \n
в начале строки.
Пример:
with open(filename) as infile, open(filename1, "a") as outfile:
for line in infile:
outfile.write("\n" + line.upper())