local-judge 中遇到一個關於檔案權限 (Filemode) 的問題,因為檔案權限不同導致 git 比對的結果會顯示兩個輸入不同:

old mode 100644
new mode 100755

原本我是用 subprocess 在比對之前執行 chmod,效果跟我想的是一樣的。

chmod --reference=answer_filepath output_filepath

但是在解決另外一個複製的問題時,意外找到 shutil,這個工具提供一些檔案複製的函式,其中就有複製檔案權限的,而且竟然是 build-in module,因此我後來改用這個了。

copymode(answer_filepath, output_filepath)

感覺雖然自己已經算是很會找現有的工具了,但是還是很多東西沒看過呢 OuO