gpt4 book ai didi

python - read() 的文件大小限制?

转载 作者:太空狗 更新时间:2023-10-29 18:07:34 24 4
gpt4 key购买 nike

我在尝试使用 Python 3.5 加载大文件时遇到问题。使用不带参数的 read() 有时会出现 OSError: Invalid argument。然后我尝试只读取文件的一部分,它似乎工作正常。我确定它在 2.2GB 左右开始失败,下面是示例代码:

>>> sys.version
'3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
>>> x = open('/Users/username/Desktop/large.txt', 'r').read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
>>> x = open('/Users/username/Desktop/large.txt', 'r').read(int(2.1*10**9))
>>> x = open('/Users/username/Desktop/large.txt', 'r').read(int(2.2*10**9))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument

我还注意到在 Python 2.7 中不会发生这种情况。这是在 Python 2.7 中运行的相同代码:

>>> sys.version
'2.7.10 (default, Aug 22 2015, 20:33:39) \n[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)]'
>>> x = open('/Users/username/Desktop/large.txt', 'r').read(int(2.1*10**9))
>>> x = open('/Users/username/Desktop/large.txt', 'r').read(int(2.2*10**9))
>>> x = open('/Users/username/Desktop/large.txt', 'r').read()
>>>

我使用的是 OS X El Capitan 10.11.1。

这是一个错误还是应该使用其他方法来读取文件?

最佳答案

是的,您遇到了一个错误。

好消息 其他人也发现了它并且已经在 Python 错误跟踪器中为它创建了一个问题,请参阅:Issue24658 - open().write() fails on 2 GB+ data (OS X) .这似乎是平台相关的(仅限 OS-X),并且在使用 read 和/或 write 时可以重现。显然,fread.c 在 OS-X 的 libc 实现中的实现方式存在问题,请参阅 here .

坏消息它仍然是开放的(而且,目前,不活跃)所以,你必须等到它被解决。无论哪种方式,如果您对具体细节感兴趣,您仍然可以查看那里的讨论。


作为解决方案,我很确定您可以回避问题,直到通过读取 block 并在处理期间链接 block 来解决问题。写作时也这样做。不幸的是,它可能会成功。

关于python - read() 的文件大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com