Read inputfile as csv in python -
i want read csv file stdin , operate on it.
the following code reading csv file , doing operation needed. works fine. want take input stdin.
import csv open('hospital_data.csv', 'rb') csvfile: mydict = {} csvreader = csv.reader(csvfile, delimiter=',') row in csvreader: if row[6] not in mydict.keys(): #print 'zipcode: ' + row[6] + ' hospital code: ' + row[1] mydict[row[6]] = 1 elif row[6] in mydict.keys(): #print 'value in row '+ str(mydict[row[6]]) mydict[row[6]] += 1
is there way in python read file stdin csv file ?
csv.reader
take yields lines, can use of methods shown @ answer lines stdin: how read stdin in python?
i'm partial fileinput
myself due flexibility. eg:
import csv import fileinput mydict = {} csvreader = csv.reader(fileinput.input(mode='rb'), delimiter=',')
but works too:
import csv import sys mydict = {} csvreader = csv.reader(sys.stdin, delimiter=',')
if that, you'll want run -u
command line argument make stream binary, if makes difference on platform: https://docs.python.org/2/using/cmdline.html#cmdoption-u
in either case you'll need use control-d mark end of input.
note correct way check if key in dict if row[6] in mydict
rather checking keys
. , in fact if want default value when key not present, use get
:
for row in csvreader: mydict[row[6]] = mydict.get(row[6], 0) + 1
or collections.counter
, since you're on 2.7:
mydict = collections.counter(row[6] row in csvreader)
Comments
Post a Comment