[英]Python: Print x lines after a pattern including the line with pattern
如果一行在文件中以數字( 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()
我怎樣才能讓它停止跳行?
使用標志,當您發現將其設置為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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.