我有一个保存为CSV的Excel表格看起来像(当它在Excel中时)这个更长的时间:
Monday Tuesday Wednesday Thursday Friday
marsbar 9 8 0 6 5
reeses 0 0 0 9 0
twix 2 3 0 5 6
snickers 9 8 0 6 5
(格式不完美,但你得到的要点 - 糖果棒/天)。我想为python编写一个程序,我可以在程序中输入一个糖果名称列表
>>> ['twix', 'reeses']
它会给我一周那天吃糖果棒的日子以及当天吃了多少个糖果棒。结果看起来像这样:
Monday 2
Tuesday 3
Wednesday 0
Thursday 14
Friday 6
有人可以帮我写这样的节目吗?
答案 0 :(得分:3)
我们可以帮助您编写这样的程序,是的。
我们不会为您编写程序(这不是StackOverflow的内容)。
Python附带CSV module,它将在Excel保存的CSV文件中读取。
您可以将数据存储在dictionary中,以便于检索。
祝你好运!答案 1 :(得分:2)
可能使用csv module
我认为分隔符是制表符(\t
)
import csv
reader = csv.reader(open('csv_file.csv', 'rb'), delimiter='\t')
for row in reader:
print row
>>>['Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday']
['marsbar', '9', '8','0', '6', '5']
['reeses', '0', '0', '0', '9', '0']
['twix', '2', '3', '0', '5', '6']
['snickers', '9', '8', '0', '6', '5']
答案 2 :(得分:2)
最好的办法是使用python中内置的csv
包。它会让你循环遍历行,每次给你一个列表,如下所示:
import csv
candy_reader = csv.reader(open('candy.csv', 'rb'))
for row in candy_reader:
if row[0] in candy_to_find:
monday_total += row[1]
# etc.
我没有初始化几个变量,但我认为这应该给你基本的想法。
答案 3 :(得分:1)
除了其他答案之外,您可能还想查看xlrd模块,因为如果您不想处理CSV业务,它可以直接处理Excel电子表格。该模块允许您一次读取整个(或范围)的行/列以及抓取单个单元格,您可以遍历所有内容以搜索您想要的内容,然后在同一行中返回您想要的任何相关“值” / column您找到搜索条件的列。
答案 4 :(得分:0)
一些有用的内容:
如果你有一个列表,如
[['marsbar', 0, 1, 2, 3, 4], ['twix', 3, 4, 5, 6, 7]]
(您应该可以使用csv
模块获得)
您可能希望将其转换为字典,其中每个列表的第一项用于键,其余的组成值。你可以用
之类的东西来做到这一点dict((x[0], x[1]) for x in list_of_lists)
您也可以使用列表推导查找多个键:
[the_dict[key] for key in key_list]
它为您提供了一个列表列表,您希望在这些列表中对每个列表的第一个元素,第二个元素等进行求和。为此,我们使用“压缩”列表来列出包含所有第一个元素的列表,所有第二个元素等,然后对内部列表求和。
[sum(x) for x in zip(*the_requested_candybars)]
zip()
函数有多个参数; *
这里将列表列表转换为多个列表参数。
我们可以zip
再次将周名称与总和相匹配。