Эта программа предназначена для чтения одного файла, а затем создания другого файла со списком в обратном порядке. Первый файл читает
Luke 19
Anakin 45
Han 35
Leia 19
Obiwan 70
Yoda 400
2-й файл должен быть в этом списке в обратном порядке: сначала Йода 400, а затем Люк 19. Я получаю сообщение об ошибке в программе с использованием функции reverse() и говорит, что объект не имеет атрибута "reverse".
Редактировать: Предлагаемая публикация не создает новый файл со списком в обратном порядке, он просто печатает его снова в обратном порядке.
f = open("file1.txt","r")
f1 = open("file2.txt","w")
f1.write(f.reverse())
Потому что .reverse()
— это метод list
. Вы должны сначала прочитать все строки в файлах в список, перевернуть этот список, а затем записать его в другой файл.
[stackoverflow.com/a/13217514/5266708] может помочь
Пытался использовать этот метод @Hari, выдавая мне ошибку, что у него нет атрибута "readlines"
f1.writelines(list(reversed(f.readlines()))
Да, я все еще получаю ту же ошибку: "объект кортежа не имеет атрибута "readlines""
Это работает, хотя есть одна проблема: в некоторых файлах последняя строка не имеет символа eol, а это означает, что первая строка в новом файле также не будет иметь его.
with open("file1.txt","r") as f1:
lines = f1.readlines()
with open('file2.txt', 'w') as f2:
for item in reversed(lines):
f2.write(f"{item}")
Если последняя строка является проблемой, вы можете удалить и заменить символы новой строки.
with open("file1.txt","r") as f1:
lines = f1.read().splitlines()
lines.reverse()
with open('file2.txt', 'w') as f2:
f2.write('\n'.join(lines))
Вы можете следовать этому коду,
f = open("file1.txt","r")
f1 = open("file2.txt","w")
f1.writelines(reversed(f.readlines()))
fout = open("file2.txt",'r')
fout.read()
Возможный дубликат Прочитайте файл в обратном порядке, используя python