我在Python中打开了一个8 MB的文件,因为我想批量更改各种类型的文件名。我经历并将文件加载到一个字符串中并使用字符串方法replace来替换所有内容。然后我注意到只有一半的文件被替换了;好像Python没有完全打开文件。
是否存在某种字符串大小限制或最大文件大小限制,我必须在Python的范围内播放?
请参阅中的代码 Python搜索和替换没有正确替换。
我已更改为建议的代码。缓冲区是一个8 MB的HTML文件,超过150k行。替换代码完美无缺;只是它并没有取代一切。或者例如一个痛苦的错误是:
当我试图将字符串ff10替换为FF-10时,它将被更改为FF-010。
不,Python可以打开的文件大小没有可达的最大值。 8 MB是 小 用现代术语来说。你在某处弄错了。
人们经常加载 千兆字节 数据到内存中。根据计算机的RAM,无论是64位还是32位操作系统和处理器,实际最大值可能是1 GB之前的任何值 MemoryError
。
作为测试,我只是将一个350 MB的文件加载到一个字符串中。只花了几秒钟。然后我把它写回一个文件。这花了一点时间。然后我对文件进行了哈希处理。两者是相同的。
在您达到RAM,操作系统或处理器的限制之前,Python对大字符串没有任何问题。
你说你“通过并将文件加载到一个字符串中” - 这听起来像是你可能犯错的第一个地方。要将文件加载到字符串中,您就可以了 fileobject.read()
。如果你采取其他方式,这可能是问题。