Напишите программу, которая читает файл и записывает новый файл со строками в обратном порядке. - PullRequest
1 голос
/ 04 мая 2020

Напишите программу, которая читает файл и записывает новый файл со строками в обратном порядке (т.е. первая строка в старом файле становится последней в новом файле.)

Я могу правильно перевернуть строки, используя reverse(), но не могу заставить его записать вывод в новый файл. Вот код, который у меня есть.

f = open("States.txt", "rb")
s = f.readlines()
f.close()
f = open("newstates2.txt", "wb")
x = s.reverse()
f.write(x)

Ответы [ 2 ]

1 голос
/ 04 мая 2020
file = "<path to file>"
with open(file) as f:
    lines = f.readlines()

reverse_file = "e:\\python\\reversed.txt"
with open(reverse_file, 'w') as rev:
    rev.writelines(lines[::-1])
1 голос
/ 04 мая 2020

reverse() ничего не возвращает. Если вы хотите использовать reverse(), вы должны будете использовать s впоследствии вместо создания новой переменной для перевернутого списка. Кроме того, readlines() возвращает список, поэтому вы не можете напрямую вызывать write(), но вы можете перебирать его. Вот обновленная версия:

f = open("States.txt", "rb")
s = f.readlines()
f.close()
f = open("newstates2.txt", "wb")
s.reverse()
for line in s:
    f.write(line)
f.close()

В качестве альтернативы, вы можете использовать reversed(), который возвращает обратную версию:

for line in reversed(s):
    f.write(line)
...