将文本文件的行复制到python中列出

时间:2014-11-10 20:13:21

标签: python list text

我的档案有以下四行:

第一行
第二行
第三行
第四行
最后一行

我想在这个文件中搜索单词" Third"并复制"第一行"和"第二行"到list1,然后复制"第三行"到一个list2,最后是最后两行"第四行"和"最后一行"到列表3。

真的,我试图使用5行文件来做到这一点。但实际上,我使用的文件有1438行。我试图在3个不同的列表中复制此文件。我希望能够在#34; SATELITE"之前复制所有行。到一个列表,然后是以" SATELITE"开头的所有行。列出2,最后列出结束行3。

我使用readlines将所有行放在列表中,就我所知。

感谢。

3 个答案:

答案 0 :(得分:2)

我更喜欢使用带有列表理解的最短版本,如下所示:

with open(file_name) as f: # Default file operation mode is `r'
    items = f.readlines()

    i = [index for index, item in enumerate(items) if item.startswith('Third')]
    list1, list2, list3 = items[:i[0]], [items[i[0]]], items[i[0]+1:]

    print list1
    print list2
    print list3

答案 1 :(得分:0)

请查看以下代码:

if "Third" in open(your_file).read()
   print("Found the word!")
   f1 = open(your_file)
   i = 0;
   list1 = [];
   list2 = [];
   list3 = [];
   for line in f1:
      i += 1;
      if (i < 3):
        list1.append(line):
      else if (i == 3):
        list2.append(line);
      else:
        list3.append(line);

这适合你吗?只有当文件不大时,这才是好的!!!

答案 2 :(得分:-1)

好的,我只是在没有尝试的情况下将其输入窗口(因此可能会出现一些小错误)

def process_file(path):

    list_container = [[] for i in range(3)]
    list_index = 0
    with open(path,'r') as text_file:
        for line in file:

            if "Three" in line:
                 list_container[1].append(line)
                 list_index = 2
            list_container[list_index].append(line)
    return list_container