使用Python打印交替行

2 投票
6 回答
4248 浏览
提问于 2025-04-16 12:43

我有一个文本文件,内容像这样:

1
2
3
4
5
6
7
8
9
10

... 还有更多内容。

我该怎么写一个程序,先打印前两行,然后跳过三行,再打印两行(就是这个规律)。

我还是个新手。
任何帮助都非常感谢。

谢谢。

6 个回答

1
with open(filename) as f:
    print ''.join( f.readline() for i in xrange(7) if i in (0,1,5,6))

或者

with open(filename) as f:
    print ''.join( f.readline() for i in '1100011' if i=='1')

或者

with open(filename) as f:
    print ''.join( i*f.readline() for i in (1,1,0,0,0,1,1))
2

我不太确定有没有什么固定的方法来处理这个问题。你可以直接用 file.readlines() 把整个文件读进来,然后用数组切片来处理。如果你担心会占用太多内存,可以用 itertools.compress() 来逐行读取文件,这个方法是基于 itertools.cycle() 生成的一个模式。或者,你也可以简单地写个循环或者用列表推导式来解决。

4

根据行的编号,并假设有一个5个项目的循环(显示前两个项目,跳过接下来的三个项目):

for i, line in enumerate(file('myfile.txt')):

   if i % 5 in (0, 1):
       print line

撰写回答