将大文件放入列表中
我想知道如何将一个非常大的文件放入列表中?代码我只适用于小文件:将大文件放入列表中
def populate_director_to_movies(f):
'''
(file open for reading) -> dict of {str: list of str}
'''
movies = []
line = f.readline()
while line != '':
movies.append(line)
line = f.readline()
当我使用这个非常大的文本文件时,它只是一个空格。
为什么不使用Python的with
语句?
def populate_director_to_movies(f):
with open(f) as fil:
movies= fil.readlines()
或者如果文件对于内存来说太大,请使用文件迭代器来完成。
def populate_director_to_movies(f):
movies = []
with open(f) as fil:
for line in fil:
movies.append(line)
我不是非常熟悉with语句,但对于大文件,可以写为: DEF populate_director_to_movies(F): '' ' (文件打开用于读取) - > {STR:STR的列表}的字典 ''' 电影= [] F =开('f.txt') for line in f: movies.append(line) line = f.readline() – 2013-04-04 03:09:48
我不确定你想要做什么,但那是行不通的。我编辑了我的答案,以澄清如何逐行添加到电影列表 – 0xff0000 2013-04-04 03:44:40
如果文件很大,则遍历该文件(或创建一个生成器)并处理该行。
喜欢的东西:
for line in f:
process_line(line)
'f.readlines()'不完全一样的东西 – jamylak 2013-04-04 02:48:57
如果文件过大存储在内存中,没有将其存储在内存中。为什么你需要存储整个事情? – Blender 2013-04-04 02:49:01
该档案有一个骑乘(0-307)和一定数量的政党被选中。我正在努力的计划..我必须选择一个骑马,并在每个文件中退还各方的金额。各方是N,L,C和G,骑马有一堆。所以,我想我会把它变成一本字典,而关键是骑马,价值将成为政党。{骑术14:N,L,G,C,N,N,C,G,L ,C,LC}。 – 2013-04-04 02:55:48