【发布时间】:2016-08-30 05:30:08
【问题描述】:
我是 SO 的新手,对 Python 也比较陌生,所以如果这是一个简单的修复或不恰当的问题,我很抱歉。
首先,我的程序通常可以正常工作,但我正在尝试实现一些冗余/catchalls 以使其健壮。
程序会查看 excel 文件的目录(和子目录),单独打开它们,搜索数据(在特定工作表上),然后将其转储到 csv 中。由于每个搜索词都有效地针对列的头部,因此涉及到循环,我希望在此下方有 4 个值。
我使用正则表达式来定义搜索词。
我编写了一个函数来搜索 excel 表以匹配正则表达式。工作表在单元格中有字符串和其他格式类型,因此是字符串的类型(查询)。
def SearchXLWithRe(regex)
for i in range(1, Row_limit): # row limit is defined by OpenPyXL module
for j in range(1, Column_limit): # same here for column limit
query = ws.cell(row = i, column = j).value
if type(query) == str: # i only want to look at strings
if regex.search(query): # of the responses that are strings, i want to match to the regex
return [i,j]
此函数适用于搜索存在的字符串(迄今为止一直如此)。我想在 some excel 文件不包含我要搜索的术语时添加冗余,但其他人会(它可以只返回一些空白单元格的合成坐标,例如 1000,1000 或其他东西)。
我曾尝试放置一个else,但由于它正在循环一个 excel 文档并找到多个字符串,所有这些返回都是一个无。
我认为我有一个简单的逻辑问题,但我就是看不到;如果有人能给我一些指点,我们将不胜感激(并且热切地!)收到帮助。
我已经复习的问题(但我仍然迷路):
In Python how should I test if a variable is None, True or False
【问题讨论】:
-
如果工作表不包含您要查找的内容,则返回值为
None:这是任何没有显式返回的 Python 函数的返回值。 -
谢谢,是的,这就是我现在得到的(到目前为止建议的答案),即使我知道可以找到价值。我确信我有一个逻辑问题。就是不知道是什么!
标签: python regex excel openpyxl