Python read将更多的一行附加到文本文件的列表中

时间:2016-06-23 21:19:35

标签: python

我有一个网络设备配置的文本文件,我在文件的行中有我的脚本循环,这就是我正在寻找的内容:

如果它在行中找到特定的单词,我想将我的脚本附加到列表中。到目前为止,我只能在我的列表中附加一行...这是一个例子:

my_file = open('configs.txt', 'r')
license = []
for line in my_file:    
    if line.startswith ("show license verbose"):
        license.append(line)    
print license

到目前为止,只有一行显示“show license verbose”。我想让它在找到那个短语后再说5行。

感谢。

3 个答案:

答案 0 :(得分:2)

xrange

它是python 2的python3代码你可能想要删除最后一次打印中的括号并使用range代替 year RealTaxRevs 1 1971 8335046 2 1972 9624026 3 1973 10498935 4 1974 10052305 5 1975 8708381 6 1976 8911262 7 1977 10759032

答案 1 :(得分:2)

您可以使用itertools.islice从文件对象中获取后续行:

from itertools import islice

my_file = open('configs.txt', 'r')
license = []
for line in my_file:    
    if line.startswith("show license verbose"):
        license.append(line)
        license.extend(islice(my_file, 5))
print license

答案 2 :(得分:1)

open返回一个生成器,因此您可以使用下一个方法:

d3.select([])