从文本文件中删除第二行

时间:2014-09-18 09:22:47

标签: python

我已经阅读了一些与此类似的问题,但所有问题都是删除第一行或最后一行,或者删除与指定字符串匹配(或不匹配)的行。

我想要做的是删除文本文件中的第二行,然后将所有内容向上移动一行而不是用空格填充第二行。

EG。第3行变为第2行,第4行变为第3行等。

例如,如果我的输入是:

1
2
3
4
5

我希望输出为:

1
3
4
5

我不能指定删除符合字符串的行,因为第二行会根据日期每天更改。

我已经开始使用

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

但我无法弄清楚如何改变它以跳过第二行。

上下文:

这是为我的团队在工作中生成一个rota。第一行是标题,第二行是最近的日期。这意味着在每晚的午夜,第二行变为昨天,此时我需要移除该行并在末尾添加一个新行,但该部分更容易。

2 个答案:

答案 0 :(得分: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

只要您处理小文件,这是一种可行的方法。否则你最好从一个文件中读取并写入另一个文件。

答案 1 :(得分:0)

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