我已经阅读了一些与此类似的问题,但所有问题都是删除第一行或最后一行,或者删除与指定字符串匹配(或不匹配)的行。
我想要做的是删除文本文件中的第二行,然后将所有内容向上移动一行而不是用空格填充第二行。
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。第一行是标题,第二行是最近的日期。这意味着在每晚的午夜,第二行变为昨天,此时我需要移除该行并在末尾添加一个新行,但该部分更容易。
答案 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)