python如何打开服务器文件大小,关于字符串:Python可以打开的文件的最大大小?...

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

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

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

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

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

您可以打开任意大小的文件,但是当您读取整个文件时,内存溢出可能会发生,因为32位系统只能为每个进程分配2GB,或者您可能没有足够的内存。

展示给你问题的代码,这样你就可以得到比简单地告诉你猜测是否正确更有用的答案。:)

添加到我的代码的链接

你的代码有问题。案例x==1总是先匹配,所以最后是FF-010。使用正确的字符串替换函数或读取regexps和/或最长前缀匹配。

你在用窗户吗?是否以二进制模式打开文件?如果没有,尝试…

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

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

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

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

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

那弦乐呢?

@没人看到我对你问题的评论

我做了一个测试,并将结果添加到我的答案中。

@Niklas根据你的电脑,你可以得到一个尺寸小于2GB的MemoryError,如我所提到的。

@彼得的琐碎编辑是不鼓励的。我很感激人们改正错误,但是你所做的改变并没有影响到任何人对这个问题的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值