Есть ли способ проверить, имеет ли строка значение или нет? - PullRequest
0 голосов
/ 05 мая 2018

В файле Excel есть 2 столбца. У одного есть название курсов, а у следующего - оценка, которую студент набрал в этом курсе. Некоторые курсы не имеют оценок перед ними. Есть ли способ проверить, пуста ли эта ячейка или нет?

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Я сделал фиктивный 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'']
0 голосов
/ 05 мая 2018

Вы можете проверить это, используя поиск по re

пример:

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()

Теперь я начну искать результат Боба

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