Это звучит как домашнее задание, поэтому я не буду отвечать на ваш вопрос напрямую, но я также не против помочь вам добраться из пункта А в пункт Б. Если вы можете показать, какую работу вы проделали и какую-либо конкретный вопрос об этом, тогда это другое. Пожалуйста, смотрите Как спросить для получения дополнительной информации. В противном случае этот вопрос, скорее всего, будет закрыт, поскольку он не потребует никаких усилий с вашей стороны.
Чтобы подойти к вашей проблеме:
- Читайте в строках вашего файла. (
readlines
)
- Отфильтруйте строки до тех, которые короче или равны по длине
x
. (filter
)
- Перезаписать ваш файл. Вы можете объединить свои строки в строку, прежде чем сделать это. (
join
)
- Всегда закрывайте файл, когда закончите.
Редактировать :
Теперь, когда вы выяснили, как написать это самостоятельно, я приведу пример того, как это выглядит в реальном мире с более Pythonic подходом, так что вы также можете увидеть метод, который я предлагал.
# Open the file, read the lines into a list, and truncate the file.
file = open("file.txt", "r+")
lines = file.readlines()
file.seek(0)
file.truncate()
# Filter out lines longer than 42 characters and write to them the file.
lines = filter(lambda line: len(line) <= 42, lines)
file.writelines(lines)
file.close()