我正在尝试使用Python搜索Excel文件并打印与用户搜索的单元格值相对应的数据。
我有一个Excel文件,其中包含一列中美国每个邮政编码的列表,接下来的四列是与该邮政编码相关的信息,例如它所在的州,在那里运送物品的价格,等等。我希望用户能够搜索特定的邮政编码,并让程序打印出相应单元格中的信息。
这是我到目前为止所做的:
from xlrd import open_workbook
book = open_workbook('zip_code_database edited.xls',on_demand=True)
prompt = '>'
print "Please enter a Zip Code."
item = raw_input(prompt)
sheet = book.sheet_by_index(0)
for cell in sheet.col(1): #
if sheet.cell_value == item:
print "Data: ",sheet.row
非常感谢任何和所有帮助!
答案 0 :(得分:0)
EVP_Cleanup()
是一个永远不会等于sheet.cell_value
的函数。您应该尝试使用item
示例 -
cell.value
答案 1 :(得分:0)
我没有使用你正在使用的模块xlrd
,但是如果你只是使用常规python dictionary
来完成这项工作并且创建它,你似乎可以让自己变得更容易包含加载字典的小模块。我假设您熟悉python dictionary
以获得以下解决方案。
您将使用邮政编码作为键,将其他4个数据字段用作字典的值(我假设下面是.csv
文件,但您也可以使用制表符分隔或其他单个空格)。调用以下文件make_zip_dict.py
:
zipcode_dict = {}
myzipcode = 'zip_code_database edited.xls'
with open(myzipcode, 'r') as f:
for line in f:
line = line.split(',') # break the line into the 5 fields
zip_code = line[0] # assuming zips are the first column
info = ' '.join(line[1:]) # the other fields turned into a string with single spaces
# now for each zip, enter the info in the dictionary:
zipcode_dict[zip_code] = info
将此文件保存到与'zip_code_database edited.xls'
相同的目录中。现在,要以交互方式使用它,导航到目录并启动python交互式会话:
>>> import make_zip_dict as mzd # this loads the module and the dict
>>> my_zip = '10001' # pick some zip to try out
>>> mzd.zipcode_dict[my_zip] # enter it into the dict
'New York City NY $9.99 info4' # it should return your results
您可以通过输入所需的邮政编码在命令行上以交互方式处理此问题。你可以添加一些花哨的花哨和口哨,但这会很快吐出信息,它应该非常轻巧和快速。