Python可以打开的文件最大大小是多少?
我在Python中打开了一个8MB的文件,因为我想批量修改各种文件名。我把文件加载到一个字符串里,然后用字符串的方法replace来替换所有内容。结果我发现只有一半的内容被替换了,感觉Python没有完全打开这个文件。
在Python中,是否有什么字符串大小限制或者文件大小限制,我需要遵循这些限制吗?
可以参考这段代码:Python搜索和替换没有正确替换.
我已经改用了建议的代码。这个缓冲区是一个8MB的HTML文件,超过15万行。替换的代码运行得很好,只是没有替换所有内容。比如说,有一个很麻烦的错误是:
当我尝试把字符串ff10替换成FF-10时,它却变成了FF-010。
1 个回答
21
不,Python可以打开的文件大小没有上限。8MB在现在的标准来看是非常小的。你可能在某个地方犯了错误。
人们经常会把几个千兆字节的数据加载到内存中。根据你电脑的内存(RAM)大小,以及你使用的是64位还是32位的操作系统和处理器,实际上你能加载的最大数据量可能从1GB起,直到你遇到MemoryError
。
作为测试,我刚刚把一个350MB的文件加载到一个字符串里。这只花了几秒钟。然后我把它写回到文件中,这花了稍微长一点的时间。接着我对这个文件进行了哈希处理,结果是两个完全一样。
在你达到内存、操作系统或处理器的限制之前,Python处理大字符串没有问题。
你说你“把文件加载到一个字符串里”——这听起来像是你可能出错的地方。要把文件加载到字符串中,你只需要用fileobject.read()
。如果你用其他方法,那可能就是问题所在。