系列文章:
1.只要點兩下就能產出彰化縣Cloud School 學生帳號密碼匯入彰化縣EIP系統學生帳號密碼的CSV
1.https://skjhcreator.blogspot.com/2025/08/cloud-school-eipcsv.html
2.只要點兩下就能利用彰化縣EIP系統學生帳號CSV產出建立Google Classroom 學生總表
2.https://skjhcreator.blogspot.com/2025/08/eipcsvgoogle-classroom.html
3.只要點兩下就能利用彰化縣EIP系統學生帳號CSV產出指定學生名單的Google Classroom學生帳號總表
3.https://skjhcreator.blogspot.com/2025/09/eipcsvgoogle-classroom.html
1.只要點兩下就能產出彰化縣Cloud School 學生帳號密碼匯入彰化縣EIP系統學生帳號密碼的CSV
1.https://skjhcreator.blogspot.com/2025/08/cloud-school-eipcsv.html
2.只要點兩下就能利用彰化縣EIP系統學生帳號CSV產出建立Google Classroom 學生總表
2.https://skjhcreator.blogspot.com/2025/08/eipcsvgoogle-classroom.html
3.只要點兩下就能利用彰化縣EIP系統學生帳號CSV產出指定學生名單的Google Classroom學生帳號總表
3.https://skjhcreator.blogspot.com/2025/09/eipcsvgoogle-classroom.html
到了新學期,學生須利用彰化縣EIP系統的帳號來進行 社團選填、因材網、酷英網。即使讓學生將自身的帳號抄在課本或習作,但學生總愛當貴人(貴人多忘事)。不是課本或習作沒帶,就是忘了自己的帳號。讓資訊科技課課程進行,總會因這些貴人們而有了停滯。更何況,學生人權高漲。過去的方式已經過去,資訊科技教師們必須有新的做法,讓課程進行更順利。因此,讓教師有 自己班級學生帳號總表。學生若忘記帳號等情事,可以直接找該班教師即可。那將 彰化縣EIP系統全校學生帳號總表 依 各班級 分成 各班級學生帳號總表,就會變成資訊組長的差事。而我不想手動拆分,只想點兩下就完成這件事。然後,檔案再透過LINE傳給各班導師或資訊科技教師。
目前已經有彰化縣EIP系統全校學生帳號總表,即AllEIPStudentAccount.csv。我們只要將AllEIPStudentAccount.csv丟進input,接著對 AllEIP2ClassStudentAccount.exe 點兩下即可。
以下是開發過程與原始碼 (Development process and code):
程式名稱(Program name):AllEIP2ClassStudentAccount.py
程式內容(Code):
import csv
import os
from collections import defaultdict
# 設定輸入與輸出資料夾路徑
input_folder = 'input'
output_folder = 'output'
# 自動建立輸出資料夾(若不存在)
os.makedirs(output_folder, exist_ok=True)
# 定義可能遇到的編碼格式
encodings = ['cp950', 'utf-8-sig', 'big5', 'utf-8']
# 檢查 input 資料夾是否存在
if not os.path.exists(input_folder):
print(f"錯誤:找不到 '{input_folder}' 資料夾!")
else:
# 遍歷 input 資料夾內所有的 CSV 檔案
for filename in os.listdir(input_folder):
if filename.lower().endswith('.csv'):
file_path = os.path.join(input_folder, filename)
print(f"正在處理:{filename} ...")
# 嘗試不同編碼讀取檔案
success = False
for enc in encodings:
try:
with open(file_path, 'r', encoding=enc) as f:
reader = csv.reader(f)
header = next(reader)
data_by_class = defaultdict(list)
for row in reader:
if row and row[0]:
# 擷取第一欄 GradeClassSeatNo 前 3 碼為班級編號
class_id = str(row[0])[:3]
data_by_class[class_id].append(row)
# 匯出各班 CSV 檔至 output 資料夾
for class_id, rows in data_by_class.items():
out_path = os.path.join(output_folder, f'{class_id}.txt')
with open(out_path, 'w', newline='', encoding='utf-8-sig') as out_f:
writer = csv.writer(out_f)
writer.writerow(header)
writer.writerows(rows)
print(f" └─ 成功使用 {enc} 解碼並完成拆分!")
success = True
break
except UnicodeDecodeError:
continue
if not success:
print(f" └─ 失敗:無法以常用編碼開啟 {filename}")
print("\n所有 input 資料夾內的 CSV 檔案皆已處理完畢!")
沒有留言:
張貼留言