抓取文本文件前10行的方法可以这样做:
with open("myfile.txt") as myfile:
lines = [next(myfile).strip() for x in xrange(10)]
这将打印前10行
但如果我只想要5-10行呢?我该怎么做?文件不小,会很大。我需要一个有效的方法来做这件事。
谢谢。
发布于 2014-07-21 02:29:33
到目前为止,最简单的方法是使用itertools.islice
。
with open('myfile.text') as f:
lines = islice(f, 5, 11)
这一点的好处是它永远不会加载整个文件;它只会做它需要做的工作。
请注意,itertools
中的函数很懒,所以您需要在关闭文件之前完成对行的处理,或者将islice
包装在list()
中强制求值。
发布于 2014-07-21 02:27:57
把你已经有的单子切了怎么样。
with open("myfile.txt") as myfile:
lines = [next(myfile).strip() for x in xrange(10)][5:10]
发布于 2014-07-21 02:31:01
例如,如果您知道要从何处开始,只需更改for循环中的范围。
var1 = 5
var2 = 10
for x in range(var1, var2):
会从5循环到10,当然你可以进一步调整变量。
https://stackoverflow.com/questions/24856901
复制相似问题