#這是一個給學生加分的小程序。需要提前把學生序號、姓名輸入到excel中,保存爲py.xls
#每次可以輸入多個同學姓名,自動在表格內加1分。
import xlrd
import xlwt
from xlutils.copy import copy # as cp
import time
workbook = xlrd.open_workbook(r'D:\py.xls')
copy = copy(workbook) #複製
#------------------------------------
c=1 #班級臨時參數
while c>0:
ban = input ('請輸入班級:')#python3 裏 input() 默認接收到的是 str 類型。
if ban.isdigit(): # 判斷輸入內容是不是數字
ban = int(ban) #將b轉換爲一個整數
if ban == 3:
sheet1 = workbook.sheet_by_name('Sheet1')
sheet1cooy = copy.get_sheet(0)
break
elif ban == 4:
sheet1 = workbook.sheet_by_name('Sheet2')
sheet1cooy = copy.get_sheet(1) #選擇班級,複製sheet2
break
else:
print('請重新輸入班級:3或4')
continue
else:
print('請重新輸入班級:3或4')
continue
#--------------------------------------------------
#print (sheet1.cell_value(a,1),sheet1.cell_value(4,1)) #可連續輸出
row_count=sheet1.nrows #獲取表格有效總行數
col_count= sheet1.ncols #獲取表格有效總列數
m = [col_count for i in range(500)] #臨時數組,用來統計那個學號加過幾次分
print ('----------------------------')
b=1 #臨時b
while b>0:
list2 = input('請輸入學號,用空格分隔多個數據:')
#生成一個記錄優秀學號的數組num
num = [n for n in list2.split()]
d=1 #臨時d,提取輸入的學號中的位置用
while d>0:
if d>len(num): #當i太長後退出
break
if num[d-1].isdigit(): # 判斷輸入內容是不是數字
num[d-1] = int(num[d-1])
# print(num[d-1])
for i in range(1,row_count): #i從1到最後一行行數遍歷
cell0 = sheet1.cell_value(i,0) #獲取第一列每一個數據
cell1 = sheet1.cell_value(i,1)
if num[d-1] == cell0: #如果輸入的數字和第一列某個單元格的數字相同,則
print (cell1) #輸出第二列中相應的姓名
m[num[d-1]]=m[num[d-1]]+1
print( m[num[d-1]])
sheet1cooy.write(i, m[num[d-1]]-1, 1)
#sheet1cooy.write(0, m[num[d-1]]-1, time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
sheet1cooy.write(0, m[num[d-1]]-1, time.strftime('%m-%d',time.localtime(time.time())))
d=d+1
copy.save(r'D:\py.xls')
print ('數據已保存!')
break
生成exe文件:
需要pyinstaller
打開命令提示行,輸入 pip install pyinstaller 等待安裝成功。
進入代碼所在目錄
輸入 d:
輸入 D:\Program Files\Python37\my code
輸入 pyinstaller -F test.py
上面的test.py即本腳本保存文件名。
注意:文件名不要爲漢字。