Python 获取输出并输入它

Python 获取输出并输入它,python,parsing,input,python-imaging-library,output,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 但是我需要把它输入到我的桌面背景

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

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

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
但是我需要把它输入到我的桌面背景图像中

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')
当成绩返回时,我需要将它们放入每个班级

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

不用为您写出代码,您需要:

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

如果从字符串
单元格.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

有关拆分多行字符串的详细信息,请参见。有关使用三个限制对列表进行切片的详细信息,请参阅。

您的问题是如何将
cell.text
中的数据放到图像上?你的代码到底出了什么问题?我需要将每个年级分开,作为一个变量放在每个科目中,但我不知道这并不总是数据,尽管它在年级更新时会发生变化,所以我需要获取每个数字并为每个年级分配一个变量。你只需要对
单元格进行同样的操作。text
,因为它是从学校年级网站获得的,就像我在我的程序中对
grades
所做的那样,即
gradesList=cell.text.split('\n')
。我没有这样做的原因是为了让我的程序成为a。它告诉我列表索引超出了范围?如果
letterGrade=gradesList[1::3]
行或
pctGrade=[int(x)for x in gradesList[2::3]]
中的
gradesList
包含少于2个元素,则会得到一个“索引超出范围”。如果您尝试在这些行之前打印成绩列表,则应确认其具有所需的元素数。如果
gradesList
不包含您期望的列表,请尝试
print cell.text
以确保它实际包含您期望的项目,每个项目都在单独的一行。我没有使用Selenium(我想您正在使用Selenium?),所以我将按照您对
cell.text
格式的描述进行操作。