如何让Python从包含诗歌的文件中仅读取每隔一行的内容

3
我知道读取每一行代码的方法是:
f=open ('poem.txt','r')
for line in f: 
    print line 

如何让Python只读取原始文件中的偶数行。假设行号从1开始计数。

2个回答

7
有很多不同的方法,这里提供一种简单的方法。
with open('poem.txt', 'r') as f:
    count = 0
    for line in f:
        count+=1
        if count % 2 == 0: #this is the remainder operator
            print(line)

这样可能更好一些,可以节省用于声明和增加计数器的行数:
with open('poem.txt', 'r') as f:
    for count, line in enumerate(f, start=1):
        if count % 2 == 0:
            print(line)

这是绝对正确的,虽然使用Pythonic方式打开文件应该使用上下文管理器,这样 with open('poem.txt', 'r') as f: 就是你想要的(这样如果你崩溃等情况发生时,文件会被正确关闭)。 - Nick Bastin
是的,你说得对,应该展示最佳实践,我已经修改了。 - Daniel Slater
3
当然,在最佳实践的领域中,我们也应该使用enumerate: for count, line in enumerate(f, start=1): if count % 2 == 0... 这样可以避免创建或自己增加计数器。 :-) - Nick Bastin

3

以下翻译自 Nick Bastin的评论

with open('poem.txt', 'r') as f:
    for count, line in enumerate(f, start=1):
        if count % 2 == 0:
            print line

我该如何从每隔一行的制表符分隔文本中读取数据并将其转换为浮点数? - CV_passionate
尝试使用float(n) for n in line.split("\t") - wjandrea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接