我已经编写了一个简短的Python脚本来读取12GB文件:
start = time.time()
my_file = open('my_12GB_file.txt', 'rb')
my_file_lines = set(my_file.readlines())
end = time.time()
print "Time elapsed: %r" % (end - start)
my_file.close()
脚本读入文件,打印经过的时间,然后停止(就像它已进入无限循环一样)。关于什么可能出错的任何想法?
更新
我改变后程序终止:
my_file_lines = set(my_file.readlines())
到
my_file_lines = my_file.readlines()
答案 0 :(得分:1)
在阅读文件时,建议使用python内置with
,特别是大文件:
with open("my_12GB_file.txt") as large_file:
for line in large_file:
do_something(line)
with
负责在完成或出现故障时关闭文件。
如果您将逐行阅读文件,那么也不会将整个文件加载到内存中,可能您遇到的问题。
答案 1 :(得分:0)
似乎有足够的内存不可用,因此程序需要很长时间,有两个解决方案,你可以将文件分解成小文件或第二种方式,你可以尝试使用超过12 GB的内存。据我所知,第一种选择更可行