gpt4 book ai didi

python - IOError : [Errno 32] Broken pipe when piping: `prog.py | othercmd`

转载 作者:IT老高 更新时间:2023-10-28 21:32:55 26 4
gpt4 key购买 nike

我有一个非常简单的 Python 3 脚本:

f1 = open('a.txt', 'r')
print(f1.readlines())
f2 = open('b.txt', 'r')
print(f2.readlines())
f3 = open('c.txt', 'r')
print(f3.readlines())
f4 = open('d.txt', 'r')
print(f4.readlines())
f1.close()
f2.close()
f3.close()
f4.close()

但它总是说:

IOError: [Errno 32] Broken pipe

我在网上看到了所有复杂的方法来解决这个问题,但是我直接复制了这段代码,所以我认为代码有问题而不是Python的SIGPIPE。

我正在重定向输出,所以如果上面的脚本被命名为“open.py”,那么我要运行的命令是:

open.py | othercommand

最佳答案

问题是由于 SIGPIPE 处理造成的。您可以使用以下代码解决此问题:

from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)

更新:正如评论中指出的,python docs已经有了很好的答案。

See here有关此解决方案的背景信息。更好的答案 here .

关于python - IOError : [Errno 32] Broken pipe when piping: `prog.py | othercmd` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207708/

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