这是我的第一个问题,我对蟒蛇和英语也有点不好,我希望你能理解......
我正在尝试循环遍历excel列中的行。最后一行返回None,我的代码出了什么问题?
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
for n in range(1,200):
n=repr(n)
cell = "b"+ n
lis = (excel.ActiveWorkbook.Activesheet.Range(cell))
if lis != "":
print(lis)
else:
print("There's nothing here")
它为白色行打印无,而不是此处没有任何内容。
非常感谢你的帮助。
答案 0 :(得分:0)
因为空行将返回None
值而不是空字符串。
因此,请将其与None
类型进行比较:
if lis is not None:
print(lis)
else:
print("There's nothing here")
这应该可以正常工作。
答案 1 :(得分:0)
None != ""
。您应该使用is not
运算符进行测试:
if lis is not None:
请注意,您不应该像其他人建议的那样使用!= None
。 From PEP8
应该始终使用
is
或is not
来比较像None这样的单例,而不是等式运算符。
编辑:根据评论中的讨论,lis
应按如下方式分配:
lis = excel.ActiveWorkbook.Activesheet.Range(cell).GetValue()