Python 2.7 - Как удалить строки в текстовом файле длиннее, чем х? - PullRequest
0 голосов
/ 28 июня 2018

Как удалить строки в текстовом файле длиннее, чем х? Затем перезаписываем этот файл и сохраняем только те строки, которые были длиной x.

f = open("file.txt","r")
lines = f.readlines()
f.close()

f = open("file.txt","w")
for line in lines:
  if line!="ph5"+"\n":
    f.write(line)
f.close()

но у меня не работает, потому что мои строки содержат "ph5", это не только ph5 сам по себе

С уважением

1 Ответ

0 голосов
/ 28 июня 2018

Это звучит как домашнее задание, поэтому я не буду отвечать на ваш вопрос напрямую, но я также не против помочь вам добраться из пункта А в пункт Б. Если вы можете показать, какую работу вы проделали и какую-либо конкретный вопрос об этом, тогда это другое. Пожалуйста, смотрите Как спросить для получения дополнительной информации. В противном случае этот вопрос, скорее всего, будет закрыт, поскольку он не потребует никаких усилий с вашей стороны.

Чтобы подойти к вашей проблеме:

  1. Читайте в строках вашего файла. (readlines)
  2. Отфильтруйте строки до тех, которые короче или равны по длине x. (filter)
  3. Перезаписать ваш файл. Вы можете объединить свои строки в строку, прежде чем сделать это. (join)
  4. Всегда закрывайте файл, когда закончите.

Редактировать :

Теперь, когда вы выяснили, как написать это самостоятельно, я приведу пример того, как это выглядит в реальном мире с более 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...