Удалить строки из текстового файла с помощью Python - PullRequest
19 голосов
/ 14 января 2010

У меня есть textfile.txt, как это:

First Line
Second Line
Third Line
Fourth Line
Fifth Line
Sixth Line

Как мне удалить первые три строки и последнюю строку наиболее удобно? Спасибо!

Ответы [ 5 ]

35 голосов
/ 14 января 2010
lines = open('textfile.txt').readlines()
open('newfile.txt', 'w').writelines(lines[3:-1])
14 голосов
/ 14 января 2010

Этот метод не использует readlines (), поэтому он идеально подходит для файлов большего размера.

numline=3 #3 lines to skip
p=""
o=open("output.txt","a")
f=open("file")
for i in range(numline):
    f.next()
for line in f:
    if p:
        o.write(p)
    p=line
f.close()
o.close()

Так как есть ответ sed, вот и один awk

$ awk 'NR>=4{if(p)print p;p=$0;}' file
Fourth Line
Fifth Line
4 голосов
/ 14 января 2010
data="".join(open("textfile.txt").readlines()[3:-1])
open("newfile.txt","wb").write(data)
1 голос
/ 26 июня 2017
f = open('file1.txt').readlines()

open('file1.txt', 'w').writelines(lines[4:])

Этот фрагмент кода удалит первые четыре строки из названия файла "file1.txt"

0 голосов
/ 14 января 2010

Нет решения на Python, но поскольку ваша проблема классическая, я представляю вам решение sed.

$ sed -n -e "4,5p" textfile.txt

Конечно, адрес 4,5 работает только для вашего ввода и требуемого вывода:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...