2014-09-18 3 views
0

Я прочитал несколько вопросов, которые похожи на это, но все либо удаляют первую или последнюю строку, либо удаляют строку, которая соответствует (или не соответствует) указанной строкой ,Удаление второй строки из текстового файла

Что я хочу сделать, это удалить вторую строку в текстовом файле, а затем переместить все на одну строку, а не заполнять вторую строку пробелами.

Например. линия 3 будет линия 2, линия 4 становится линией 3 и т.д.

, например, если мой вход был:

1 
2 
3 
4 
5 

Я хотел бы выход быть:

1 
3 
4 
5 

Я могу» t просто укажите, чтобы удалить строку, если она соответствует строке, поскольку вторая строка изменяется ежедневно в зависимости от даты.

Я начал с использования

with open('file.txt', 'r') as f: 
    lines = f.readlines() 
    f.write(lines) 

Но я не могу работать, как изменить это, чтобы пропустить 2-й линии.

Контекст:

Это для генерации Rota для моей команды на работе. Первая строка - это заголовок, а вторая строка - самая последняя дата. Это означает, что в полночь каждую ночь вторая строка становится вчера, в этот момент мне нужно удалить эту строку и добавить новую строку в конце, но эта часть проще.

ответ

3

Вы должны прочитать файл, а затем переписать его с нужными линиями. Например:

lines = [] 

with open('file.txt', 'r') as f: 
    lines = f.readlines() 

with open('file.txt', 'w') as f: 
    f.writelines(lines[:1] + lines[2:]) # This will skip the second line 

Это жизнеспособный подход до тех пор, как вы имеете дело с маленькими файлами. В противном случае вам лучше читать из одного файла и писать другому.

0
ff = open("messi.txt",'w') 
with open('d.txt', 'r') as f: 
    lines = f.readlines() 
    lines.pop(1) 
    ff.writelines(lines) 
+0

Если исходный файл пуст, это поднимет значение 'IndexError'. Кроме того, вы должны закрыть файл в конце процесса. – Germano

Смежные вопросы