python print with IOError: [Errno 0] Error
python print with IOError: [Errno 0] Error
ll=[]
for ii in range(26):
ll.append(chr(97+ii))
for ii in range(10000):
print ll
我这样打印的时候会报错,为什么?!
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r'Traceback (most recent call last):
File "e:/czh/python/test.py", line 7, in <module>
print ll
IOError: [Errno 0] Error
这是一个 Windows 错误,已通过 Windows 10 版本 1803 修复。(参见 https://bugs.python.org/issue32245 and https://github.com/Microsoft/vscode/issues/36630#issuecomment-385759625 )
它会影响 Python 3.6+ 在使用调用 WriteFile 的代码路径时,即 os.write
和遗留标准 I/O 模式,并且还会始终影响 Python 2.7 和 Python 3.5.
另一个答案:
我在 Python 2.7.18(v2.7.18:8d21aa21f2,2020 年 4 月 20 日,13:25:05)[MSC v.1500 64 位 (AMD64)]
我运行遇到这个问题当我想处理一些包含中文字符的文本时。
核心代码为:
content = fp.read().strip().strip("\n").split("\n") # fp is an opened file obj
line = "".join([content[x] for x in [1, 4, 7, 10, 13, 16]])
print(line)
正确的方法是:在 iter 之前使用 unicode 而不是 str(utf-8)
content = fp.read().strip().strip("\n").decode("utf-8").split("\n") # fp is an opened file obj
line = "".join([content[x] for x in [1, 4, 7, 10, 13, 16]])
print(line)
ll=[]
for ii in range(26):
ll.append(chr(97+ii))
for ii in range(10000):
print ll
我这样打印的时候会报错,为什么?!
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r'Traceback (most recent call last):
File "e:/czh/python/test.py", line 7, in <module>
print ll
IOError: [Errno 0] Error
这是一个 Windows 错误,已通过 Windows 10 版本 1803 修复。(参见 https://bugs.python.org/issue32245 and https://github.com/Microsoft/vscode/issues/36630#issuecomment-385759625 )
它会影响 Python 3.6+ 在使用调用 WriteFile 的代码路径时,即 os.write
和遗留标准 I/O 模式,并且还会始终影响 Python 2.7 和 Python 3.5.
另一个答案:
我在 Python 2.7.18(v2.7.18:8d21aa21f2,2020 年 4 月 20 日,13:25:05)[MSC v.1500 64 位 (AMD64)]
我运行遇到这个问题当我想处理一些包含中文字符的文本时。
核心代码为:
content = fp.read().strip().strip("\n").split("\n") # fp is an opened file obj
line = "".join([content[x] for x in [1, 4, 7, 10, 13, 16]])
print(line)
正确的方法是:在 iter 之前使用 unicode 而不是 str(utf-8)
content = fp.read().strip().strip("\n").decode("utf-8").split("\n") # fp is an opened file obj
line = "".join([content[x] for x in [1, 4, 7, 10, 13, 16]])
print(line)