在xlrd中使用列表搜索有困难

2024-04-20 15:40:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个程序,从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 cata'、'Today b cat b']等的测试列表,但当我尝试使用xlrd创建列表时,得到的只是一个“no”打印输出,这非常令人困惑。我认为这与列表的索引方式有关,或者与列表的大小有关(A列有16000个名字,B列有大约5000000个文本)

如能提供任何帮助/建议,我们将不胜感激。我在网上见过很多类似任务的方法(这里也有),但我不知道如何将不同的方法集成到对我有效的东西中。在

非常感谢


Tags: 代码文本l1列表byshcellcol
1条回答
网友
1楼 · 发布于 2024-04-20 15:40:36

试试看:

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'

相关问题 更多 >