我有一个包含数据的excel文件。我感兴趣的专栏(A栏)要么包含一个空白单元格,单个字符“Y”,单词“Runmode”或我感兴趣的唯一值。
我只想提取唯一值并将其打印到控制台,但遇到了麻烦。
我正在使用openpyxl来解析.xlsx文件。
wb = load_workbook(location + '\\' + suite)
data_sheet = wb['Data']
for i in range(1, data_sheet.max_row + 1):
cell_value = data_sheet['A' + str(i)].value
if cell_value is not 'Y' and cell_value is not 'Runmode' and cell_value is not None:
print(cell_value == 'Runmode')
print(repr(cell_value), cell_value, 'success')
输出正在打印'Runmode',即使它将True等同于我告诉我的脚本要忽略的值。我错过了什么吗?
答案 0 :(得分:2)
您应该使用==
测试字符串的相等性,就像在print语句中一样。或者至少你应该制作你的印刷声明:
print(cell_value is 'Runmode')
确保你检查同样的事情。
is
和==
之间的这种差异,例如,如果cell_value
是unicode并且您使用的是Python 2.7。
Steven Rumbalski指出你最好将if
声明重写为:
if cell_value not in ('Runmode', 'Y', None):