输出并输入

时间:2013-05-06 02:21:14

标签: python parsing input python-imaging-library output

我正在编写一个程序来获取我的学校成绩并将其作为我的桌面背景,当程序从网站上解析我的成绩时它将所有成绩归为一个

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

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

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

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

2 个答案:

答案 0 :(得分:1)

无需为您编写代码,您需要:

  • 以与您所拥有的期间列表相同的顺序迭代cell.text
  • 使用cell.text填充字符串填充Period 5:...----内容之间的空格,使其长度始终相同
  • 每次迭代cell.text时,在每增加50的位置绘制文字。
  • 保存图片。

答案 1 :(得分: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