2013-05-06 4 views
0

Im написать программу, которая берет свои школьные оценки и делает им свой фон рабочего стола, когда программа разбирает мои оценки с сайта он возвращает их все как одинПринимая выход и ввод его

код, который извлекает оценку из школьного класса сайт:

for cell in driver.find_elements_by_css_selector(".grid tr a[href$='fg=S2']"): 
    print cell.text 

cell.text возвращается как

-- 
B 
84 
-- 
A- 
90 
-- 
C+ 
79 
-- 
A 
95 
-- 
B 
82 
-- 
B 
81 

, но тогда я должен ввести его обратно в изображение на моем рабочем столе BG

font = ImageFont.load_default() 
img = Image.open('bg.bmp') 
draw = ImageDraw.Draw(img) 

now = datetime.datetime.now() 


draw.text((650, 450),'      CURRENT GRADES') 
draw.text((650, 500), 'Period 1: Geography -----------------------------')#First Grade 
draw.text((650, 550), 'Period 2: Francais-------------------------------')#Second Grade 
draw.text((650, 600), 'Period 3: Science--------------------------------')#Third Grade 
draw.text((650, 650), 'Period 4: P.E------------------------------------')#Fourth Grade 
draw.text((650, 700), 'Period 5: Algebra 9------------------------------')#Fifth Grade 
draw.text((650, 750), 'Period 6: LA-------------------------------------')Sixth grade 
draw.text((650, 800), 'Last Updated: {0}'.format(now)) 
draw = ImageDraw.Draw(img) 
draw = ImageDraw.Draw(img) 
img.save('mod_bg.bmp') 

когда классы возвращаются мне нужно их положить в каждый класс

если информация необходима запроси благодаря

+0

Ваш вопрос заключается в том, как поместить данные из 'cell.text' на изображение? Что не так с вашим кодом? – TankorSmash

+0

Мне нужно, чтобы каждый класс был разделен и помещался в каждый предмет как переменную, но я не знаю, как – Serial

ответ

1

Если у вас возникли трудности с получением данных из строки cell.text, тогда вам может понадобиться следующее.

Я поместить данные в строку, чтобы начать с, так что мы имеем самодостаточное испытание:

grades = """-- 
B 
84 
-- 
A- 
90 
-- 
C+ 
79 
-- 
A 
95 
-- 
B 
82 
-- 
B 
81""" 

gradesList = grades.split('\n') 
letterGrade = gradesList[1::3] 
pctGrade = [int(x) for x in gradesList[2::3]] 

for i in range(len(letterGrade)): 
    print ("%s\t%d" % (letterGrade[i],pctGrade[i])) 

... и я печатаю результат на консоль, а не положить его в изображение, но @TankorSmash показал, как сделать последнюю часть.

Выход из этой программы:

B  84 
A-  90 
C+  79 
A  95 
B  82 
B  81 

Для получения дополнительной информации о расщепляющих строк многострочных см here. Для получения дополнительной информации о списках разрезов с тремя ограничениями см. here.

+0

, который не всегда будет данными, хотя он изменяется, когда оценки обновляются, поэтому мне нужно брать каждое число и назначать переменную для каждой оценки – Serial

+0

Вы просто хотели бы сделать то же самое с 'cell.text', поскольку он приобретается со школьного класса, как это было сделано с« оценками »в моей программе, то есть« gradesList = cell.text.split (' \ п ') '. Причина, по которой я этого не делал, заключалась в том, чтобы сделать мою программу [Short, Self Contained, Correct (Compilable), Example] (http://sscce.org/). – Simon

+0

, что он сказал мне, что индекс списка выходит за пределы допустимого диапазона? – Serial

1

Не выписывая код для вас, вам нужно:

  • Итерация по cell.text в том же порядке, что и список периодов вы получили
  • Наполните пространство будет промежуточные кадры cell.text и Period 5:... материала со строкой заполнения у вас есть, так что это всегда такие же длины
  • Нарисовать текст в месте, который увеличивается на 50 каждый раз, когда вы итерацию над cell.text.
  • Сохраните изображение.
Смежные вопросы