从list-Python中的字符串中提取第n行文本

时间:2017-06-12 15:40:29

标签: python python-3.x

我有一个由149个文本字符串组成的列表。从每个字符串,我想提取第2行和第7行文本。我希望将每行的结果放在一个单独的列表中。

我已尝试过(仅限一行):

text = []  
for string in list:
  x = string.splitlines()[2]
  text.append(x)

但是我得到消息" IndexError:list index超出范围"。我想也许我需要这样做:

text = []  
for string in list:
  x = [string].splitlines()[2]
  text.append(x)

但是这给了我一条消息" AttributeError:' list'对象没有属性' splitlines'"

我正在使用Python 3.6。有任何想法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

string.splitlines是分割每个字符串的行的正确函数,如果它为索引2提供IndexError(注意:这是第3行)那么这意味着少于三条线。这可能是您正在寻找的代码:

line2_results = []
line7_results = []
for str in list:
    lines = str.splitlines()
    if len(lines) >= 2:
        line2_results.append(lines[1])
        if len(lines) >= 7:
            line7_results.append(lines[6])