0

プログラムがサイトから私の成績を解析し、それらをすべて 1 つとして返すときに、学校の成績を取得してデスクトップの背景にするプログラムを書いています。

学校の成績サイトから成績を取得するコード:

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、次のようなものが必要になる場合があります。

自己完結型のテストができるように、最初にデータを文字列に入れました。

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

複数行の文字列の分割の詳細については、こちらを参照してください。3 つの制限があるリストのスライスの詳細については、こちらを参照してください。

于 2013-05-06T03:42:40.137 に答える