删除两个特定行号之间的所有行

Delete all lines between two specific line numbers

我需要根据行号删除其他行之间的所有行。 在此file.py中,如何删除第2º和第6º行之间的所有文件?

文件:

1
2
3
4
5
6
7
8
9
10

使用此代码,我可以删除特定行下方 and/or 以上的所有行。但是我不能

代码:

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)

比预期的要容易。

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,最好只对python代码的文件使用.py扩展名。