gpt4 book ai didi

python - 在 python 中将输入文件读取为 csv

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:07 25 4
gpt4 key购买 nike

我想从 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 将采用任何产生行的内容,因此您可以使用此答案中显示的任何方法从标准输入获取行: How do you read from stdin in Python?

由于它的灵 active ,我自己偏爱 fileinput。例如:

import csv
import fileinput

myDict = {}
csvreader = csv.reader(fileinput.input(mode='rb'), delimiter=',')

但这也行:

import csv
import sys

myDict = {}
csvreader = csv.reader(sys.stdin, delimiter=',')

如果这样做,您需要使用 -u 命令行参数运行以生成二进制流,如果这对您的平台有影响的话: https://docs.python.org/2/using/cmdline.html#cmdoption-u

无论哪种情况,您都需要使用 control-D 来标记输入的结尾。

请注意,检查键是否在字典中的正确方法是 if row[6] in myDict 而不是检查 keys。事实上,如果您只想在 key 不存在时使用默认值,请使用 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)

关于python - 在 python 中将输入文件读取为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com