读取大文件后,Python脚本不会终止

时间:2017-08-10 15:29:21

标签: python io

我已经编写了一个简短的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()

2 个答案:

答案 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的内存。据我所知,第一种选择更可行