文章来自《Python cookbook》. 翻译仅仅是为了个人学习,其它商业版权纠纷与此无关!
-- 61.182.251.99 [DateTime(2004-09-21T05:42:12Z)] TableOfContents
描述
Retrieving a Line at Random from a File of Unknown Size 读取未知大小文件的随机一行
问题 Problem
有文件,不清楚大小(但是可能非常大),需要忽略文件本身,只读取数据的随机一行。
解决 Solution
We do need to read the whole file, but we don't have to read it all at once: 需要读取文件的全部数据,但是不是一次全部读出:
import random def randomLine(file_object): "顺序读取文件内容,取文件的随机的一行" lineNum = 0 selected_line = '' while 1: aLine = file_object.readline( ) if not aLine: break lineNum = lineNum + 1 # How likely is it that this is the last line of the file? if random.uniform(0,lineNum)<1: #译注: 这里是随机的吗? selected_line = aLine file_object.close( ) return selected_line
讨论 Discussion
...