Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除文件中的多行? 我有一个文件,我需要删除文件中间的几行。< /P>_Python_Python 2.7 - Fatal编程技术网

Python 如何删除文件中的多行? 我有一个文件,我需要删除文件中间的几行。< /P>

Python 如何删除文件中的多行? 我有一个文件,我需要删除文件中间的几行。< /P>,python,python-2.7,Python,Python 2.7,我需要删除的行在开头和结尾都有一个关键字 例如: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

我需要删除的行在开头和结尾都有一个关键字

例如:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
dddddddddddddddddddddddddd
开始移除
依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依依
FFFFFFFFFFFFFFF
gggggggggggggggggg
HHHHHHHHHHHHHHHHHHHHHHHHH
内移
IIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
我需要一个脚本,当然是python脚本,来删除关键字“Begintoremove”和“EndofRemove”之间的文本部分

您认为可以这样做吗?如果可以,使用哪种Python函数

f = open('filename')
lines = f.readlines()
f.close()

result = []
bool_remover = False
for line in lines:
    if line == "Begintoremove" : bool_remover = True
    if not bool_remover : result.append(line)
    if line == "EndofRemove" : bool_remover = False

我没有在结果中包括“Begintoremove”和“EndofRemove”。

根据当前的
复制状态,从文件中读取行并将其复制到第二行:

with open('file_path', 'r') as my_file:
    file_lines = my_file.readlines()

first_part = file_lines[:file_lines.index('Begintoremove')]
second_part = file_lines[file_lines.index('Endtoremove') + 1:]

lines = first_part + second_part
with open('file_path', 'w') as my_file:
    my_file.writelines(lines)
copying = True
with open('input_file.txt', 'rt') as inf, open('output_file.txt', 'wt') as outf:
    for line in inf:
        if copying:
            if line.startswith('Begintoremove'):
                copying = False
            else:
                outf.write(line)
        elif line.startswith('EndofRemove'):
            copying = True

我想是的,但是你应该先试试。当然,这是可能的,只要试试;-)。逐行读取文件,对于您读取的每一行,使用函数
line.startswith(“Begintoremove”)
开始删除,直到
line.startswith(“EndRemove”)
为真