Tag: Python

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 …

RRD 修改舊資料數值

RRD 是十分好用的統計工具,很多伺服的監測也會使用 RRD。 今天發現 RRD 內的一組數據紀錄出錯,但 RRD 內建並沒有修改舊數據的功能,需要將 RRD 資料庫備份成 XML 檔,修改 XML 檔後,再復原到資料庫,以下是修改的方法,在這裡記錄一下。 1. 例如要修改數據的 RRD 檔是 /usr/local/rrd/file.rrd, 先用 rrdtool 的 dump 功能,將 RRD 的資料匯出成 XML 檔: # …