我正在尝试使用xlrd模块读取excel文件的第二列。但问题是第二列也有空行。我只需要选择值而不是行。以下是我的代码:
import xlrd
import sys
import re
workbook_name = sys.argv[1]
if workbook_name:
book = xlrd.open_workbook(workbook_name)
for sheet in book.sheet_names():
if re.search(r'Munich',sheet):
sh = book.sheet_by_name(sheet)
#num_cols = sh.ncols
for row_ids in range(0,sh.nrows):
cell_obj = str(sh.cell(row_ids,1))
blank_regex = re.compile(r'u\'\'')
if not re.search(blank_regex,cell_obj):
#re.sub('^.+u'()',\1,cell_obj)
print(cell_obj)
else:
print ("Please supply workbook_name")
当我得到输出时,这就是我得到的:
text:u'Dom0'
text:u'muclgd0008.dedc2.cloud.com'
text:u'muclgd0007.dedc2.cloud.com'
text:u'muclgd0006.dedc2.cloud.com'
text:u'muclgd0005.dedc2.cloud.com'
text:u'muclgd0004.dedc2.cloud.com'
text:u'muclgd0003.dedc2.cloud.com'
text:u'Dom0'
text:u'muclmx0032.dedc2.cloud.com'
text:u'muclmx0031.dedc2.cloud.com'
text:u'muclmx0030.dedc2.cloud.com'
text:u'muclmx0029.dedc2.cloud.com'
text:u'muclmx0028.dedc2.cloud.com'
text:u'muclmx0027.dedc2.cloud.com'
text:u'muclmx0026.dedc2.cloud.com'
text:u'muclmx0025.dedc2.cloud.com'
text:u'muclgp0002.dedc2.cloud.com'
text:u'muclgp0001.dedc2.cloud.com'
text:u'Hardware Device'
text:u'Exadata X2-2 Quater Rack'
text:u'Exadata X2-2 Quater Rack'
text:u'ZFS Filer'
text:u'BDA'
我不知道为什么这个奇怪的文字:你刚才开始。这些字符在excel表中没有。
有人可以指导我如何删除它。
提前致谢。
答案 0 :(得分:0)
你得到了u
,因为你正在使用Python 2,并且你得到了引号,因为你正在打印出“单元格对象”(你隐式转换为它的“repr”),而不是它的价值。使用sh.cell_value()
代替str(sh.cell())
。
一旦你这样做,你可以只删除空格并检查结果是否为非空:
if cell_text.strip():
print(cell_text)