关于字符串:Python可以打开的文件的最大大小?

Max size of a file Python can open?

我在python中打开了一个8 MB的文件,因为我想批量更改各种类型的文件名。我检查并将文件加载到一个字符串中,然后使用字符串方法replace替换所有内容。然后我注意到只有一半的文件被替换;就好像python没有完全打开文件一样。

在python中,是否有某种类型的字符串大小限制或最大文件大小限制?

请参阅python search中的代码,替换未正确替换的代码。

我已改为建议的代码。缓冲区是一个超过150k行的8 MB HTML文件。替换代码工作得很好;只是它没有替换所有的东西。或者例如,一个痛苦的错误是:

当我试图将字符串ff10替换为ff-10时,它将被更改为ff-010。


不,在python可以打开的文件大小上没有可达到的最大值。就现代而言,8 MB是很小的。你在某个地方犯了个错误。

人们经常将千兆字节的数据加载到内存中。根据计算机的RAM(无论是64位还是32位操作系统和处理器)的不同,在获得MemoryError之前,实际最大值可能在1 GB以上。

作为测试,我刚刚将一个350 MB的文件加载到一个字符串中。只花了几秒钟。然后我把它写回一个文件。这花了更长的时间。然后我对文件进行了哈希处理。两者是相同的。

在达到RAM、操作系统或处理器的极限之前,python对大字符串没有任何问题。

你说你"通过并将文件加载到一个字符串中"——这听起来像是你第一次犯错误。要将文件加载到字符串中,只需执行fileobject.read()。如果你换个方法,那可能是问题所在。