Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用列表在xlrd中搜索时遇到困难_Python_String_List_Text_Xlrd - Fatal编程技术网

Python 使用列表在xlrd中搜索时遇到困难

Python 使用列表在xlrd中搜索时遇到困难,python,string,list,text,xlrd,Python,String,List,Text,Xlrd,我正在尝试编写一个程序,从excel文件的第一列中获取单元格的姓氏,并在同一行中与其相邻的单元格文本中搜索该字符串 目前,我的代码如下: import xlrd workbook = xlrd.open_workbook("C:\Python27\Doc\Book3.xls") worksheet = workbook.sheet_by_name("Sheet1") num_rows = worksheet.nrows - 1 num_cells = worksheet.ncols -

我正在尝试编写一个程序,从excel文件的第一列中获取单元格的姓氏,并在同一行中与其相邻的单元格文本中搜索该字符串

目前,我的代码如下:

    import xlrd
workbook = xlrd.open_workbook("C:\Python27\Doc\Book3.xls")
worksheet = workbook.sheet_by_name("Sheet1")
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1
while curr_row < num_rows:
    curr_row += 1
    row = worksheet.row(curr_row)
    curr_cell = 2
    while curr_cell < num_cells:
        curr_cell += 1
        cell_value = worksheet.cell_value(curr_row, curr_cell)
sh = workbook.sheet_by_index(0)     
first_col = sh.col_values(2)
second_col = sh.col_values(3)
L = [first_col]
L1 = [second_col]
for i, j in enumerate(L):
    if j in L1[i]:
        print j
    else:
        print 'no'
当我手工生成列表时,我的代码似乎可以工作,例如,只有一个L=['a'、'b'、'c']和L1=['Today a cat a'、'Today b cat b']等的测试列表,但是当我尝试使用xlrd创建列表时,我得到的只是一个no打印输出,这非常令人困惑。我认为这与列表的索引方式有关,或者与列表的大小有关。A列中有16000个名字,B列中有大约5000000个单词

如能提供任何帮助/提示,将不胜感激。我在网上和这里看到了很多类似任务的方法,但我不知道如何将不同的方法集成到对我有效的东西中

非常感谢

尝试一下:

import xlrd

workbook = xlrd.open_workbook("input.xls")
worksheet = workbook.sheet_by_name("Sheet1")

for row in xrange(worksheet.nrows):
    value_first = worksheet.cell_value(row, 0)
    value_second = worksheet.cell_value(row, 1)
    if value_first in value_second:
        print row
    else:
        print 'no'

哦,你真是太好了!我将不得不设置xlrd编写器,以便我可以将其放回电子表格中,但这是有效的!!!!!!我是一个业余爱好者,已经做了10天了,这真是太棒了!非常感谢你。