// 題目

網址不是檔名

A URL Is Not a File Name・pync-23-01

  • Python 程式設計・23 Automating Practical Tasks

時間限制 1 秒・記憶體 31 MB

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

題目敘述

要從網路抓一份公開資料,程式碼本身只是一行 requests.get(),但有兩件事可能出錯:網址不對,或網路不通。評測環境沒有網路,所以這次請求的結果會直接寫在輸入的第二行給你,你的程式要根據結果做出正確的反應。

另一部分工作是決定檔案存到硬碟時的檔名。網址不能直接當檔名,規則是:取最後一個 / 之後的部分;若這部分帶有查詢參數(從第一個 ? 開始到結尾的所有內容),要把它切掉;若網址以 / 結尾,最後一個 / 之後是空的,此時檔名使用 index.html。

輸入格式

第一行是網址。第二行是這次請求的結果:OK <位元組數> 表示成功並收到那麼多位元組;否則是被丟出的例外名稱,例如 ConnectionError 或 Timeout。

輸出格式

成功時輸出 Downloaded <檔名>, size <位元組數> bytes。失敗時輸出 Download failed: <例外名稱>,例外名稱照輸入第二行原樣輸出。

範例

範例 1

輸入

https://opendata.cwa.gov.tw/fileapi/v1/opendataapi/O-A0001-001.xml
OK 148320

輸出

Downloaded O-A0001-001.xml, size 148320 bytes

說明

網址最後一個 / 之後是 O-A0001-001.xml,沒有查詢參數,所以直接當作檔名。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。