sys.stdin on windows

zugnush at gmail.com zugnush at gmail.com
Wed Sep 3 11:16:03 CEST 2008


I often grep particular patterns out of large logfiles and then
pipeline the output to sort and uniq -c
I thought today to knock up a script to do the counting in a python
dict.

This seems work in linux

$ cat count.py
#!/usr/bin/env python
import sys
from collections import defaultdict
accumulator=defaultdict(int)
for line in sys.stdin.readlines():
    accumulator[line.strip()]+=1
print "contents,count"
for key in accumulator.keys():
    print key,",",accumulator[key]

$ cat test | ./count.py
contents,count
 , 1
23 , 1
1 , 1
3 , 2
2 , 2
5 , 3

When I try to run the same thing on windows I get
IOError: [Error 9] Bad file descriptor

How can I make this more windows friendly?

Thanks
Neil




More information about the Python-list mailing list