有没有办法检查行是否有值?

时间:2018-05-05 10:03:42

标签: python python-3.x python-2.7 xlrd xlwt

excel文件中有2列。一个有课程的名称,下一个有学生在该课程中得分的等级。有些课程在他们面前没有成绩。有没有办法检查该单元格是否为空?

2 个答案:

答案 0 :(得分:0)

您可以使用搜索功能检查mabe

示例:

from re import search

该文件就像列

那样
+---------+--------+
| Student | Score  |
|---------|--------|        
|         |        |
| John    |   9    |
|         |        |
| Katty   |   7    |
|         |        |
| Alexnder|   8    |
|         |        |
|         |        |
| Bob     |        | #Empty
+------------------+

仅举例,我想搜索鲍勃的分数 我将打开文件

f = open('filename', 'r').readlines()
for d in f:
   column = d.rstrip()

现在我将开始搜索Bob的结果

   g = search(r'| Bob     |   (.*)    |', column)
   result = g.group(1)
   if result = '':
      print "Result Of Bob Is Empty"
   else:
      print "Result Of Bob Is : " + result

答案 1 :(得分:0)

我使用以下值制作了一个虚拟xlsx:

Course  | Grade
Maths   |
English | A
Science | B

使用openpyxl,并假设excel文件中的第二列是成绩,它只有一个工作表:

>>> from openpyxl import Workbook, load_workbook
>>> wb = load_workbook('Grades.xlsx')
>>> ws = wb.active
>>> for row in range(2,ws.max_row+1):
...     if not ws[row][1].value:
...             print([x.value for x in ws[row]])
...
[u'Maths', None]

xlrd使用具有相同值的xls文件:

>>> import xlrd
>>> wb = xlrd.open_workbook('Grades.xls')
>>> ws = wb.sheet_by_index(0)
>>> for row in range(1, ws.nrows):
...     if not ws.cell_value(row, 1):
...             print([ws.cell_value(row,0),ws.cell_value(row,1)])
...
[u'Maths', u'']