我的档案有以下四行:
第一行
第二行
第三行
第四行
最后一行
我想在这个文件中搜索单词" Third"并复制"第一行"和"第二行"到list1,然后复制"第三行"到一个list2,最后是最后两行"第四行"和"最后一行"到列表3。
真的,我试图使用5行文件来做到这一点。但实际上,我使用的文件有1438行。我试图在3个不同的列表中复制此文件。我希望能够在#34; SATELITE"之前复制所有行。到一个列表,然后是以" SATELITE"开头的所有行。列出2,最后列出结束行3。
我使用readlines将所有行放在列表中,就我所知。
感谢。
答案 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