1.主要目標:對照原始檔(班級完整名單)找出目標檔案中的未提交人員
2.次要目標:為了程式的的適用性,可以自己選擇兩個檔案,再選擇對比列
思考之後,這個問題很簡單,其實只需要「兩個集合做差集」便可以得到,簡單來說如下所示:
'''獲取原始檔與目標檔案'''
sourcefile_path = filedialog.askopenfilename(title = 'please choose contrastive source file')#使用檔案選擇對話方塊獲取原始檔路徑
source_book = xlrd.open_workbook(sourcefile_path)#xlrd開啟路徑指向的excel檔案
source_sheet = source_book.sheet_by_index(0)#預設開啟第乙個表
targetfile_path = filedialog.askopenfilename(title = 'please choose contrastive target file')
target_book = xlrd.open_workbook(targetfile_path)
target_sheet = target_book.sheet_by_index(0)
source_tip = source_sheet.row_values(0)#獲取原始檔第一行的表頭資訊
target_tip = target_sheet.row_values(0)
'''建立對比項選擇視窗'''
contrastive_item = tk.tk()
contrastive_item.title('choose contrastive items')
#標籤ttk.label(contrastive_item, text="choose source item").grid(column=0, row=0)
ttk.label(contrastive_item, text="choose target item").grid(column=1, row=0)
#下拉列表1(包含原始檔表頭資訊)
source_item = ttk.combobox(contrastive_item, width=20)#建立下拉列表1並設定寬度
source_item['values'] = source_tip#將原始檔表頭資訊放入下拉列表1
source_item.grid(column=0, row=1)#按網狀分布放與2行1列
source_item.current(0)#預設選項為首項
#下拉列表2(包含目標檔案表頭資訊)
target_item = ttk.combobox(contrastive_item, width=20)#建立下拉列表2並設定寬度
target_item['values'] = target_tip#將目標檔案表頭資訊放入下拉列表1
target_item.grid(column=1, row=1)#按網狀分布放與2行2列
target_item.current(0)#預設選項為首項
def confirm():
source_list = source_sheet.col_values(source_tip.index(source_item.get()))[1:]#讀取原始檔,所選列除表頭外的資訊
target_list = target_sheet.col_values(target_tip.index(target_item.get()))[1:]#讀取目標檔案,所選列除表頭外的資訊
diff = list(set(source_list) - set(target_list))#list強轉為set,做差集,再轉為list
'''顯示結果'''
result_root = tk.tk()
result = tk.listbox(result_root)
for item in diff:
result.insert(0,item)
result.pack()
result_root.mainloop()
#按鈕action = ttk.button(contrastive_item, text="confirm", command=confirm) #建立按鈕,並設定響應為confirm
action.grid(column=2, row=1)#按網狀分布放與2行3列
contrastive_item.mainloop()
最重要的核心**只有一句:
GIT 修改GIT提交人記錄資訊
場景 公司內部有git賬號,以工號命名,個人賬號參與開源專案 提交開源專案的時候使用者名稱沒切換成個人賬戶,導致專案都是工號的提交記錄,違反了公司規定。參考 侵刪。git clone bare如 cd ant design.gitcopy以下指令碼到記事本,修改old name correct na...
Git 如何針對專案修改本地提交提交人的資訊
git 如果不進行修改的話,在預設情況下將會使用全域性的使用者名稱和電子郵件。但是在 github 中是通過使用者郵件來進行提交人匹配的。如何針對專案來修改提交的使用者資訊?針對 tortoisegit,你可以在專案中選擇 settings。然後選擇 git 的 local 選項。在 local 中...
Git 如何針對專案修改本地提交提交人的資訊
git 如果不進行修改的話,在預設情況下將會使用全域性的使用者名稱和電子郵件。但是在 github 中是通過使用者郵件來進行提交人匹配的。如何針對專案來修改提交的使用者資訊?針對 tortoisegit,你可以在專案中選擇 settings。然後選擇 git 的 local 選項。在 local 中...