簡體   English   中英

Python:在包含模式行的模式后打印x行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM