我需要根据行号删除其他行之后的所有行。 在这个file.py中,如何删除2º和6º行之间的所有文件?
文件:
1
2
3
4
5
6
7
8
9
10
使用此代码,我可以删除特定行上方和/或下方的所有行。但是我不能
代码:
with open('file.py', 'r') as fin:
data = fin.read().splitlines(True)
with open('ab.py', 'w') as fout:
fout.writelines(data[2:])
我尝试了第二个代码,在这里我只能删除1条特定的行(当我尝试删除1条以上的行时,效果并不理想)
del_line1 = 1
with open("file.py","r") as textobj:
list = list(textobj)
del list[del_line1 - 1]
with open("file.py","w") as textobj:
for n in list:
textobj.write(n)
答案 0 :(得分:1)
比预期的要容易。
dellist = [3, 4, 7] #numbers of the lines to be deleted
with open('data.txt') as inpf:
with open('out.txt', 'w') as of:
for i, line in enumerate(inpf):
if i+1 not in dellist: #i+1 because i starts from 0
of.write(line)
您阅读了每一行,并且如果该行号不在禁止行列表中,则将该行写入另一个文件。
因此,假设您使用原始输入,上面的代码将给出:
1
2
5
6
8
9
10
注意:这里我将文件称为data.txt
,最好将.py
扩展名用于仅包含python代码的文件。