Python / 檔案目錄處理 (windows system)

Python / 檔案目錄處理 (windows system)

目錄 取得程式執行目錄 (current directory) 取得檔案大小 (Filesize) 確認檔案或目錄是否存在 刪除目錄下所有檔案 ▍取得程式執行目錄 (current working directory) ▍取得檔案大小 (Fileszie) 取得檔案大小的方法有三種,回傳的結果是位元組 (bytes) 使用 os.path.getsize(path) 使用 os.stat(path).st_size 使用 Path(path).stat().st_size (Python 3.4+) Reference Getting file size in Python? | stack overflow ▍確認檔案或目錄是否存在 在 os 套件中有三種相關的方法可以確認檔案或目錄是否存在: os.path.exists() 檢查檔案目錄是否存在 os.path.isfile() 確認路徑是否為檔案 os.path.isdir() 確認路徑是否為路徑 另外,在 Python 3.4 以上的版本可以使用 pathlibPath 套件: Reference Python Check If File...

Python / 使用 Selenium 撰寫網路爬蟲程式 (chromedriver)

Python / 使用 Selenium 撰寫網路爬蟲程式 (chromedriver)

想要用 Python 實作網路爬蟲程式的方法有兩種:使用 requests 套件或 selenium 套件。兩個套件的差異在於 requests 套件是使用最基礎的 GET 和 POST 方法和 server 溝通,好處在於它的速度快、作法單純,壞處是必須處裡來自於網站的一切資料傳輸動作、Cookies Handling、甚至更複雜的 JS 渲染、網頁程式互動等複雜的動作。如果要爬的目標網站內容比較單純,或甚至可以透過 API 取的資料,那可以考慮使用 requests 套件。不過現在的網站設計越來越複雜,本篇使用的 selenium 套件則是透過控制瀏覽器 (本篇使用 chromedriver),讓瀏覽器為我們處裡上面提到的複雜動作,例如登入帳號之後的 cookies handling、表單填寫並送出 POST request 或是 JS 渲染後的網站動作,讓我們模擬實際操作網站的方式進行網站爬蟲。本篇目前不是完整的爬蟲程式教學,只是筆記一些關於使用 Selenium 套件撰寫爬蟲程式的方法。 目錄 如何取得 HTML 的 attribute (how to get attribute of element) 實作捲動畫面 (Scrolling) ▍如何取得 HTML 的 attribute (how to...

SQLite / 語法筆記

SQLite / 語法筆記

目錄 如何在 SQLite 實現 Truncate Table SQLite 的時間與日期函數 取得當下時間(在地時區) 建立 temp table ▍如何在 SQLite 實現 Truncate Table TRUNCATE 指令在 SQL Server 中是清除整張 table 的所有 records,但不會刪除整張表單也不會移除 table schema。SQLite 不是使用 TRUNCATE,而是使用 DELETE 這個指令。 Reference SQLite: TRUNCATE TABLE Statement | totn SQLite ▍SQLite 的時間與日期函數 在 SQLite 中有五個關於時間和日期的函數: date(time-value, ...) : The date() function returns the date in this...

Python / 如何處裡亞洲文字(Unicode, UTF-8)?以兩個字元計算顯示長度?轉換字串與bytes?

Python / 如何處裡亞洲文字(Unicode, UTF-8)?以兩個字元計算顯示長度?轉換字串與bytes?

目錄 將 utf-8 字串轉換為 bytes 格式,並計算 bytes 長度 ▍將 utf-8 字串轉換為 bytes 格式,並計算 bytes 長度 使用 encode() 函數可將字串轉換為 bytes 格式,若將 bytes 印出來可以看到字串最前面是以 b'' 開頭顯示表示此為 bytes array。其中可見原本標準的 ASCII 字元能然維持一個 byte 長度,而且直接顯示字元。如果是 Unicode 文字則是用 \x 16進位的方式表示,且以中文字為例在 UTF-8 編碼下是 3 個 bytes 長度。例如:”串”的 Unicode 編碼為 \xe4\xb8\xb2。 若要取得字串的 bytes 總長度,在轉換成 bytes 格式之後可以直接使用 len() 函數取得長度。 Reference How can I...

CSS / 幫表格加入橫向捲軸,讓超出螢幕寬度的表格不會擠成一團

CSS / 幫表格加入橫向捲軸,讓超出螢幕寬度的表格不會擠成一團

我們在網頁當中加入表格的時候常常會遇上一個問題,就是當表格的寬度已經超過螢幕的寬度要怎麼辦?尤其是手機版的頁面更是容易遇上這樣的問題。還記得 CSS 有一個 overflow 的屬性,但只設定這個屬性是不夠的,還需要對表格的加入以下屬性: 首先要先讓 table 這個物件變成 block 物件,然後在水平方向的 overflow 讓它自動判斷是否有超出寬度的內容,自動加入水平捲軸。 最後是 white-space: nowrap 這個屬性,讓文字不會因為寬度自動斷行,除非內容真的有斷行 <br> 存在。 這是另一篇文章 Tech / 蘋果 Macbook 和 iPhone 的螢幕解析度、尺寸比較表 有用到表格捲軸的範例: ▍ 關於上面三個 CSS 屬性的詳細說明可以參考 W3School 的說明: display: CSS display Propertyonferflow: CSS overflow Propertywhite-space: CSS white-space Property Copyright announcement:the featured image: Photo by The Journal Garden | Vera Bitterer on Unsplash

CSS / 透過 CSS 隱藏網頁上的元件方法,visibility: hidden 和 display: none 有什麼不同?

CSS / 透過 CSS 隱藏網頁上的元件方法,visibility: hidden 和 display: none 有什麼不同?

當我們想控制一個網頁上的元素要不要顯示出來,可以簡單地透過 CSS 的方式做到。隱藏元素的方式有兩種:visibility: hidden 和 display: none。 這裡有個範例,我們想隱藏文章的標題。先看看原本網頁應該長的樣子: ▍ 隱藏元素但保留元素的位置 visibility: hidden 使用 visibility: hidden 這個屬性會使得元素不顯示在網頁上,但它卻會保留元素的空白位置。 可以看到標題已經隱藏起來了,可是標題本身的位置也保留了下來,留下了一片空白。 ▍ 隱藏元素也不保留元素的位置 display: hidden 如果你想要把元素隱藏起來,連它的位置也不保留給它,就好像它完全不存一樣,那麼你就要使用 display: hidden 這個屬性。 需要注意的是,雖然我們把元素隱藏起來,好像它整個被移除了。但是實際上它還是存在在網頁上的,只需要打開 HTML 原始碼就可以看到,我們只是透過 CSS 的方式去控制它現在顯示的外觀狀態。 Copyright announcement: the featured image: Computer photo created by freepik – www.freepik.com