在python中将inputfile读为csv
发布时间:2020-12-20 12:31:39 所属栏目:Python 来源:网络整理
导读:我想从STDIN读取一个csv文件并对其进行操作. 以下是用于读取csv文件并执行所需操作的代码.这很好用.但我想从STDIN获取输入. import csvwith open('hospital_data.csv','rb') as csvfile: myDict = {} csvreader = csv.reader(csvfile,delimiter=',') for row
我想从STDIN读取一个csv文件并对其进行操作.
以下是用于读取csv文件并执行所需操作的代码.这很好用.但我想从STDIN获取输入. import csv with open('hospital_data.csv','rb') as csvfile: myDict = {} csvreader = csv.reader(csvfile,delimiter=',') for 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 有没有办法在Python中将文件从STDIN读取为csv文件? 解决方法
csv.reader将获取产生行的任何内容,因此您可以使用此答案中显示的任何方法从stdin获取行:
How do you read from stdin in Python? 由于其灵活性,我不愿意自己归档.例如: import csv import fileinput myDict = {} csvreader = csv.reader(fileinput.input(mode='rb'),') 但这也有效: import csv import sys myDict = {} csvreader = csv.reader(sys.stdin,') 如果你这样做,你将需要使用-u命令行参数运行以生成流二进制文件,如果这会对您的平台产生影响: 在任何一种情况下,您都需要使用control-D来标记输入的结尾. 请注意,检查密钥是否在dict中的正确方法是myDict中的row [6]而不是检查密钥.事实上,如果您只想在密钥不存在时使用默认值,请使用get: for row in csvreader: myDict[row[6]] = myDict.get(row[6],0) + 1 或者查看collections.Counter,因为你在2.7: myDict = collections.Counter(row[6] for row in csvreader) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |