On 3/10/2016 4:46 PM, Ian Kelly wrote:
On Thu, Mar 10, 2016 at 2:33 PM, Fillmore <fillmore_rem...@hotmail.com> wrote:

when I put a Python script in pipe with other commands, it will refuse to
let go silently. Any way I can avoid this?

What is your script doing? I don't see this problem.

ikelly@queso:~ $ cat somescript.py
import sys

for i in range(20):
     sys.stdout.write('line %d\n' % i)

you are right. it's the with block :(

import sys
import csv

with open("somefile.tsv", newline='') as csvfile:

    myReader = csv.reader(csvfile, delimiter='\t')
    for row in myReader:

        for i in range(20):
            sys.stdout.write('line %d\n' % i)

$ ./somescript.py | head -5
line 0
line 1
line 2
line 3
line 4
Traceback (most recent call last):
  File "./somescript.py", line 12, in <module>
    sys.stdout.write('line %d\n' % i)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to