何时文件太大而无法在Python中读取字符串?

时间:2016-11-30 17:11:34

标签: python python-2.7 file memory

我理解(在某种意义上),如果您不知道文件大小或文件大小很大,将整个文本文件作为字符串读取被认为是不好的做法。例如:

with open('letters.txt', 'r') as my_txt_file:
    my_txt = my_txt_file.read()

会使my_txt成为由'letters.txt'中的所有文字组成的字符串。

我假设将文件视为太大而无法读取为字符串的阈值取决于一个硬件的规格。但是我想知道,当一个人应该选择逐行读取文件时,是否存在某个文件大小限制?

1 个答案:

答案 0 :(得分:2)

理论上的限制是Python字符串的最大大小,由其索引确定,2 ** 63解释为here

实际限制取决于系统的内存。显然,如果在内存中保存一个字符串需要的内存比系统多,那么你将获得MemoryError

就良好做法而言,这有点更主观。但是,一般来说,我考虑逐行读取文件,即使对于小文件也是很好的做法(内存效率似乎是一种很好的做法)。当然,在某些情况下,您需要将整个文件放在一个字符串中,但我认为这些非常罕见。