使用Python打印交替行
我有一个文本文件,内容像这样:
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