BrokenPipeError:[Errno 32] python3中的管道损坏

时间:2015-06-27 10:05:54

标签: python-3.x broken-pipe

import sys 

input_1 = sys.argv[1]

in_1 = open(input_1, 'r')

input_lines = in_1.readlines()

in_1.close()

length = len(input_lines)

for line in range(3,length):

    print(line,input_lines[line], end="")

exit()

我收到BrokenPipeError:[Errno 32]。

1 个答案:

答案 0 :(得分:1)

您发布的代码没有问题。还有其他事情发生在这里。您是否正在使用正在关闭管道的其他程序?

e.g。 script.py input.txt | headscript.py input.txt | tail

如果是这样,那么首先将输出存储在文件或变量中。例如:

script.py input.txt > output.txt
head output.txt

或者...

output=$(script.py input.txt)
head <<<"$output"

如果您只想抑制错误,可以使用以下内容替换脚本的结尾:

try:
    for line in range(3, length):
        print(line, input_lines[line], end="")
except BrokenPipeError:
    pass