Когда текстовый файл действительно большой, хранить содержимое в переменной опасно, потому что это может вывести вас из памяти. В вашем случае кажется, что вы можете читать и писать в один проход. Если ваши #C
и #S
должны быть исключены из вывода:
with open("KMAP_2018_04_23_071018_fast_00001.txt","r") as KMAPspec:
with open("output.txt","w") as out:
should_write = False
for line in KMAPspec:
# When I meet this line, stop writing out
if line.find("#S")!=-1:
should_write = False
# Write out only if between the two tags
if should_write:
out.write(line)
# When I meet this line, start writing out
if line.find("#C imageFile")!=-1:
should_write = True
Таким образом, вы ничего не сохраняете в памяти.
Если должны быть включены граничные линии:
with open("KMAP_2018_04_23_071018_fast_00001.txt","r") as KMAPspec:
with open("output.txt","w") as out:
should_write = False
for line in KMAPspec:
# When I meet this line, start writing out
if line.find("#C imageFile")!=-1:
should_write = True
# Write out only if between the two tags
if should_write:
out.write(line)
# When I meet this line, stop writing out
if line.find("#S")!=-1:
should_write = False