生活随笔
收集整理的這篇文章主要介紹了
根据学生名单(excel文件)对QQ群成员进行统计(助教可能会需要)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡要說明:
現有一份課堂的學生名單excel文件,根據學生名單對QQ群中的成員進行統計,找出【在名單中的同學】與【不在名單中的同學】。
思路:
將網頁中某一部分元素copy出來,進行xml分析。
要求:
1、Excel文件第C列為學生姓名。
2、QQ群內所有人的名字格式都是:【姓名-班級】或【姓名】或【空】。
具體步驟:
新建文件input.html,將上圖框出的代碼copy到input.html文件中。
運行程序test.py進行分析,代碼如下:
from lxml
import etree
import xlrdlines
= open('input.html', encoding
='utf-8').readlines
()html
=''
for line
in lines
:html
+= line
;page
= etree
.HTML
(html
)
members
= page
.findall
('.//table[@id="groupMember"]/tbody[@class="list"]/tr')count
= 0
insiders_num
= 0
outsiders_mum
= 0
data
=xlrd
.open_workbook
(r
'計算機xx選課名單.xls')
sheet1
= data
.sheets
()[0]
outsiders
= [] for member
in members
:name
= member
.findall
('.//td[@class="td-card"]/span/span')if name
[0].text
== None: name
= ""else:name
= name
[0].text
.strip
().split
('-')[0]qq
= member
.findall
('.//td')[4]qq
= qq
.text
.strip
()print (str(count
+1)+':', end
=' ')print (name
,end
=' ')flag
= Falseif (len(name
) >= 2 and len(name
) <= 3):rows
= sheet1
.nrows
for i
in range(rows
):excel_mem_nam
= str(sheet1
.cell
(i
,2).value
)if (excel_mem_nam
.find
(name
) != -1):flag
= Truebreakif (flag
): insiders_num
+= 1print ('yes')else: outsiders
.append
([name
,qq
])outsiders_mum
+= 1;print ('no')count
+= 1assert (outsiders_mum
== len(outsiders
))print ()
print ("群總人數:" + str(count
))
print ("在名單中的人數:" + str(insiders_num
))
print ("不在名單中的人數(包含助教):"+str(outsiders_mum
))assert (count
== insiders_num
+ outsiders_mum
)print ()
print ("不在名單中的人如下(群內名稱,qq號):")
for mem
in outsiders
:print (mem
)
運行結果如下:
總結
以上是生活随笔為你收集整理的根据学生名单(excel文件)对QQ群成员进行统计(助教可能会需要)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。