Category: Python / Perl

Python 逐行讀取 Pipe 管線輸入

Linux 的管線 Pipe 可以把多個指令配合使用, 實現很多功能。而 Python 要讀取 pipe 輸入, 只要透過 stdin 便可以實現, 例如: 以上幾行程式碼, 會讀取 pipe 的輸入, 然後逐行印出。上面的 line 就是每一行的內容, 例如假設以上程式名為 test.py, 可以這樣測試: 上面的例子需要在 pipe 輸入內容, 如果想直接在 Python 內執行指令, …

Python 連線 SQLite3

如果提到資料, 很多時會想起 MySQL, MariaDB, PostgreSQL 等, 而 SQLite 是一個輕量嵌入式資料庫, 它包含在一個相對小的 C 程式庫裡面, 並支援大多數 SQL 標準。 跟 MySQL 這些資料庫系統不同, SQLite 不會以系統服務的方式執行. Python 預設內建的 Sqlite3 模組可以對 sqlsite 資料庫管理。 連接資料庫 以下 Python …

Python 讀寫 JSON 格式檔案

JSON (JavaScript Object Notation) 是很常用的格式, 多數用於伺服器及網頁應用程式間傳送資料。Python 內建的 json 模組可以處理 JSON 格式的檔案。 Python 讀取 JSON 用 json 模組讀取 JSON 格式十分方便, 用 json.loads() 讀取後, 會將資料以 dictionary 回傳, 例如: 上面的例子 person 變數是 …

Python 複製及移動檔案

Python 內建了複製檔案及移動檔案的功能. Python 複製檔案: 在 Python 複製檔案可以用 shutil.copy(), 語法是: shutil.copy(src,dst) 例子: Python 移動檔案 在 Python 用 os.rename() 移動檔案, 語法跟 shutil.copy() 差不多: os.rename(src, dst) 例子:

Python 實現 grep 檔案功能

Linux 下的 grep 指令可以搜尋檔案或 Pipe 輸入的內容,以下是在 Python 要實現 grep 基本搜尋功能的寫法: 以上程式會搜尋 /var/log/nginx/access.log 檔案內,包括 “admin” 的行並印出。 註:由於 WordPress 及 Crayon Syntax Highlighter 相容性問題 如果複製上面的程式碼,第 9 行的 “>” 是全形字符,需要自行改成普通的 “>” 如果將程式改寫一下,可以將程式碼寫入 …

Python fileinput 模組

Linux 下很多系統管理的工作都會涉及讀取檔案的內容, 在 Python 下可以透過多個方法開啟檔案、讀取 Pipe 及以參數方式讀取檔案。 fileinput 是 Python 的內建模組, 它可以用很簡單的方法, 實現以上的工作。fileinput 模組提供處理一個或多個檔案的功能, 可以是透過 Pipe 輸入、用參數方法指定檔案, 或者在程式碼指定檔案也可以。 以下是 fileinput 模組的使用例子: 看到上面的程式碼很簡單, 但已經可以將 Pipe 及 參數輸入的檔案讀取, 並逐行印出, 例如: $ …

Python 讀取 Pipe 輸入

在 Unix Like 環境下的 Pipe (管線) 十分重要, 它可以將一個程式的輸出, 送給另一個程式處理, 只要中間用 “|” 字符相隔, 讓幾個不同的程式互相配合工作, 以下本章會介紹在 Python 讀取 Pipe 輸入的方法. 在 Python 要讀取 Pipe 輸入, 可以用 sys 模組的 sys.stdin, 它會讀取 /dev/stdin …

Python 用 sys.argv 讀取指令行的參數

執行指令時, 可以在程式後加入一些參數, 這些參數會傳送給程式。在 Python 要讀取這些指令的參數。 sys 模組 sys 模組提供多個 Python 執行時的環境變數, 而 sys.argv() 是儲存執行指令的陣列, 第一個元素是程式本身。 以下是程式碼的寫法: 以上程式碼會印出執行程式的名稱, 配合 len() 函式, 可以知道指令輸入了多少個參數。以下是配合使用 len() 函式, 把輸入的參數印出: