我正在尝试从Excel打印一行标题,但有些字段是空白的,即使列本身有数据条目。
我只想打印没有空白标题的列。现在我正在努力让程序打印出非空白的标题,但我无法弄清楚如何。
我是一个Python初学者,所以很多这些东西对我来说似乎并不明显。
以下是我尝试获取标题的代码:
import xlrd
import xlwt
book = xlrd.open_workbook("file.xlsx")
sheet = book.sheets()[0]
r = sheet.row(0)
print(r)
打印行中的每个值,但空白的值显示为, empty:
,这些是我想要排除的值。
当我尝试这一点时只打印非空行:
for row in range(r):
if r is not None:
print(r)
我收到a 'list' object can't be interpreted as an integer
。
答案 0 :(得分:0)
Python中的range
对象是一个创建可迭代整数范围的对象。例如。您可以执行for i in range(100):
,循环将迭代0
和100
之间的每个整数。
row
函数已经返回一系列Cell
个对象,它们可以自行迭代。要迭代这个,只需for cell in row:
。
连续的对象永远不会None
,因此检查row is not None
不会消除空单元格。空单元格是单例,也就是说,只有一个空单元格的实例,所有其他实例都不为空。检查单元格是否为空的正确方法是:
from xlrd.sheet import empty_cell
if cell is empty_cell:
实现目标的简洁方法是:
for cell in row:
if cell is not empty_cell:
print cell
使用列表理解,可以将其简化为一行:
print [cell for cell in row if cell is not empty_cell]