一日兩計:各種符號轉數字與快速獲取 IP
今天我們來看兩個很有用的小技巧。
奇形怪狀的數字轉阿拉伯數字
我們知道,在某些場景下面,有些人會使用各種奇奇怪怪的符號來表示數字。例如有些人寫自己的 QQ 號,是這樣寫的:
加扣:五⑦捌二3玖
對于這種奇奇怪怪的數字,如果我們想要批量轉化為數字,可能要提前創建一個字典來映射:
- {'一': 1, '二': 2, '三': 3, ...}
顯然,這樣寫起來非常麻煩。那么有沒有什么辦法來解決這個問題呢?實際上 Python 是認識這些表示數字的符號的,我們不需要提前設置任何映射,Python 自動就能轉換。例如:
- from unicodedata import numeric
- print(numeric('五'))
- print(numeric('⑦'))
運行效果如下圖所示:
所以,對于上面這種特殊的數字,我們可以很容易地轉換成阿拉伯數字:
- from unicodedata import numeric
- data = '五⑦捌二3玖'
- result = 0
- for char in data:
- result = 10 * result + int(numeric(char))
- print(result)
Linux 如何快速獲取本機 IP 字符串
在服務器上,有些腳本在運行的時候,需要傳入它所在服務器的 IP 地址。但這些腳本具體運行在哪個服務器上,這是由 K8S 這類的東西管理的,我們提前不知道腳本會運行在哪個服務器上,所以不能提前設置。
如果你的腳本是 Python 開發的,那么顯然你可以直接在 Python 里面獲得當前服務器的 IP 地址。但不是所有編程語言都像 Python 這么方便。而且有時候你是通過.sh文件來調用開源項目。
所以,如何使用shell 命令獲取 IP 地址呢?
老版本的 Ubuntu 可以使用ifconfig命令查看當前 IP,如下圖所示:
新版本的 Ubuntu 可以使用ip addr,如下圖所示:
無論是哪種方法,如何把其中的 IP 地址提取出來呢?這個時候我們可以使用grep配合awk實現。大家可以試一試,如何寫才能把其中的10.0.0.4。
但實際上,我們有一種更簡單的方法:
- hostname -i
運行效果如下圖所示:
本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。