取输出输入i

2024-04-27 03:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序,把我的学校成绩,使他们成为我的桌面背景时,该程序解析我的成绩从网站返回他们都作为一个

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

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

你知道吗单元格.text回来的时候

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

但是我需要把它输入到我的桌面背景图片中

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

当成绩被退回时,我需要把它们放进每一个班级

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


Tags: text程序img网站cellnowperiodbg
2条回答

如果您很难从字符串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。你知道吗

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

  • cell.text上按与你得到的句点列表相同的顺序迭代
  • 填充字符串填充cell.textPeriod 5:...之间的空格,使其长度始终相同
  • 在每次迭代cell.text时递增50的位置绘制文本。你知道吗
  • 保存图像。你知道吗

相关问题 更多 >