import os
s = os.sys.stdin.buffer.read(1024*32)
失敗,蟒蛇os.sys.stdin.buffer.read失敗如果給緩衝區長度
D:\Projects\pytools>python t1.py
Traceback (most recent call last):
File "t1.py", line 2, in <module>
s = os.sys.stdin.buffer.read(1024*32)
OSError: [Errno 12] Not enough space
BUF如果給buflen = 1024 * 32-1那麼順利,
import os
s = os.sys.stdin.buffer.read(1024*32-1)
如果你運行python t1.py,那麼進程就會被阻塞並等待輸入。 爲什麼python3.3有1024 * 32-1的緩衝區長度限制?它是系統不同的,還是所有系統都一樣?我們如何消除這個限制?
BTW:我使用Windows 7蟒蛇32位版本3.3
直到我將它增加到1024 * 3 * 6時,纔在Linux 64bit上看到任何錯誤,然後出現'MemoryError'。 – 2013-04-24 16:56:19
我的Win7 + Python3.3.0-32bit也出現同樣的問題。但是如果我在Cygwin Python 2.7.3中運行腳本,它運行得很完美。升級到3.3.1沒有幫助。 – Alexey 2013-04-24 17:01:19
我試過32位Python 3.3.0,3.3.1,2.7.4和64位3.31,但都有同樣的問題。這似乎是Windows端口特定的問題。你可以嘗試在Python郵件列表上提出這個問題。 – Alexey 2013-04-24 17:21:32