我需要在python中找到一行文本并复制它,以及它上面和下面的行

时间:2016-12-16 15:30:13

标签: python-3.x tkinter

基本上,我需要在python(和tk)中找到一行文本并复制它,以及它上面和下面的行。

Imported_File = a long list of strings. 
One_Ring = the line I'm looking for. 
  

在Imported_File中找到One_ring,复制One_ring,它上面和下面的行到Output_Var

我真的被困住了,任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找确切的行

imported_file = ['a', 'b', 'c', 'd', 'e', 'f']

one_ring = 'd'

if one_ring in imported_file:
    i = imported_file.index(one_ring)

    start = i-1
    end = i+2

    # problem with first element before "a" when `one_ring = 'a'`
    if start < 0: 
        start = 0

    output_var = imported_file[start:end]

    print(output_var)

 else:
    print('not found')

BTW:使用lower_case名称进行变通:PEP 8 -- Style Guide for Python Code

答案 1 :(得分:0)

考虑到您正在读取具有这些长字符串列表的文件。

with open('textFile.txt') as f:
  Imported_File = f.readlines()
  One_Ring = "This is the line\n"
  Output_Var = ""

  if One_Ring in Imported_File:
    idx = Imported_File.index(One_Ring)
    Output_Var = Imported_File[max(0, idx - 1):idx+2]

  print(Output_Var)

textFile.txt将是您的输入文件。我创建了一个类似于

的示例文件
Hello there
How are you
This is the line
Done, Bye