从文本文件中追加每隔一行? (蟒蛇)

时间:2015-03-06 23:06:49

标签: python list

我尝试做的是将文本文件中的所有其他行追加到列表中,然后将其他行添加到serperate列表中? E.g。

Text File 'example'

Item 1
Item 2
Item 3
Item 4
Item 5

所以我想要'项目1','项目3'和'项目5'在名为exampleOne的列表中,以及名为exampleTwo的列表中的其他项?

我已经尝试了很长时间尝试通过切片然后以不同方式添加来解决这个问题,但我似乎无法得到它,如果有人可以提供帮助,我将非常感激!

2 个答案:

答案 0 :(得分:3)

from itertools import izip_longest as zip2
with open("some_file.txt") as f:
    linesA,linesB = zip2(*zip(f,f))

是你可以做这样的事情的一种方式

这基本上只是滥用文件句柄是迭代器的事实

答案 1 :(得分:2)

怎么样?
with open('example') as f:
    lists = [[], []]
    i = 0
    for line in f:
        lists[i].append(line.strip())
        i ^= 1

print(lists[0])  # ['Item 1', 'Item 3', 'Item 5']
print(lists[1])  # ['Item 2', 'Item 4']

或更简单,使用枚举:

with open('example') as f:
    lists = [[], []]
    for i,line in enumerate(f):
        lists[i%2].append(line.strip())

print(lists[0])  # ['Item 1', 'Item 3', 'Item 5']
print(lists[1])  # ['Item 2', 'Item 4']

修改

print(lists[0][0])  # 'Item 1' 
print(lists[0][1])  # 'Item 3'
print(lists[0][2])  # 'Item 5'
print(lists[1][0])  # 'Item 2'
print(lists[1][1])  # 'Item 4'