如果文件中的一行以数字(xyz
开头,则需要打印(或写入文件)此行以及接下来的xyz+1
行。
最好的方法是什么?
到目前为止,我已经能够打印以int
开头的行。如何打印下几行?
import glob, os, sys
import subprocess
file = 'filename.txt'
with open(file,'r') as f:
data = f.readlines()
for line in data:
if line[0].isdigit():
print int(line)
如果我使用data
做一个迭代器,则打印功能每次都会跳过一行。
with open(file,'r') as f:
data = f.readlines()
x = iter(data)
for line in x:
if line[0].isdigit():
print int(line)
for i in range(int(line)):
print x.next()
如何让它停止跳过行?
答案 0 :(得分:0)
使用一个标志,当您发现该行时将其设置为true,然后使用它来写所有以后的行:
can_write = False
with open('source.txt') as f, open('destination.txt', 'w') as fw:
for line in f:
if line.startswith(xyz):
can_write = True
if can_write:
fw.write(line)