當要上傳很多檔案到 Colab 時, 一個一個上傳會很花時間, 最好是將這些檔案在本機壓縮成 zip 檔上傳 Colab 後再解壓縮.
本系列之前的文章參考 :
首先在本機中將要上傳的檔案壓縮成 zip 檔, 例如要辨識的車牌圖檔 :
按 Colab 檔案管理框上面的上傳按鈕, 點選要上傳的 zip 檔 :
可見 plates.zip 已上傳至 Colab 的預設資料夾 /content 下了.
在 Colab 中解壓縮 zip 檔有兩個做法 :
1. 使用 !unzip 指令 :
語法如下 :
!unzip 壓縮檔路徑檔名 -d 解壓目的地資料夾路徑
如果沒有指定資料夾路徑的話, 預設就是根目錄下的 /content 資料夾, 此處我想將解壓縮後的檔案放在 /content/plates 下, 所以先在檔案管理框按滑鼠右鍵點選 "新增資料夾", 然後輸入 plates :
然後在儲存格輸入下列指令 :
!unzip plates.zip -d plates
也可以明確加上路徑 :
!unzip /content/plates.zip -d /content/plates
這樣便完成解壓縮了. 點擊 ABC5678.jpg 會在最右邊顯示此車牌圖檔 :
2. 使用 zipfile 模組解壓縮 :
zipfile 是 Python 的內建模組, 裡面有一個 ZipFile 類別可用來解壓縮 zip 檔, 呼叫其建構式 ZipFile() 並傳入 zip 檔之路徑檔名以 'r' 模式開啟 zip 檔後, 呼叫檔案參考物件之 extractall() 方法即可, 語法如下 :
with ZipFile('zip 檔之路徑檔名', 'r') as z :
z.extractall('目的地資料夾路徑')
先在 Colab 檔案管理框預設資料夾 /content 下新增一個 plates2 資料夾來存放解壓後之圖檔 :
然後在程式碼儲存格輸入下列指令 :
from zipfile import ZipFile
with ZipFile('plates.zip', 'r') as z:
z.extractall('plates2')
執行後檢查 plates2 資料夾果然圖檔都已解壓在此 :
如前所述, 當 Colab 連線終止時這些上傳到 Linux 虛擬機器上的資料都會被清掉, 所以也不需要特地去刪除. 但如果有節省儲存空間考量需動態刪除不用的資料夾, 可以用 shutil 模組的 rmtree() 函式來刪除 :
import shutil
shutil.rmtree('plates2')
可見 plates2 資料夾已被刪除. 注意, 如果是手動操作, Colab 的檔案管理框無法直接刪除一個裡面還有檔案的資料夾, 必須將裡面的檔案一一刪除成為空資料夾後才能刪除它.
沒有留言:
張貼留言