0

我正在编写一个程序,该程序将我的学校成绩作为我的桌面背景,当该程序从网站解析我的成绩时,它会将它们全部返回

从学校成绩网站检索成绩的代码:

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

当成绩返回时,我需要将它们放入每个班级

如果需要任何信息,请询问谢谢

4

2 回答 2

1

在不为您编写代码的情况下,您需要:

  • cell.text以与您获得的 Periods 列表相同的顺序迭代
  • 用你得到的填充字符串填充 thecell.textPeriod 5:...stuff之间的空间,所以它总是相同的长度----
  • 在每次迭代时在递增 50 的位置绘制文本cell.text
  • 保存图像。
于 2013-05-06T03:20:54.173 回答
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

有关拆分多行字符串的更多信息,请参见此处。有关具有三个限制的切片列表的更多信息,请参见此处

于 2013-05-06T03:42:40.137 回答