今天我们来看两个很有用的小技巧。
奇形怪状的数字转阿拉伯数字
我们知道,在某些场景下面,有些人会使用各种奇奇怪怪的符号来表示数字。例如有些人写自己的 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
运行效果如下图所示: