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())
Другие вопросы по тегам