工作中遇到了要计算两个数百分比的问题,python 2.7 环境。
代码:
#!/usr/bin/env python
#function: 计算百分比
#USAGE: python calculator.py num1 num2
import sys
a=sys.argv[1]
a=float(a)
b=sys.argv[2]
b=float(b)
print "%.2f%%" % (a/b*100)
示例:
root@ops-docker-1:/tmp/data# python calculator.py 3 11
27.27%
下面是我工作中的应用
需求:要计算一堆数的百分比 并记录在文件中
原始文件
-------
root@ops-docker-1:/tmp/data# head -n 7 a.txt
北京 总计:2488 北京 总计:78353
电信 301 电信 6515
移动 70 移动 2349
联通 1500 联通 36736
铁通 60 铁通 1671
教育网 12 教育网 234
鹏博士 9 鹏博士 51
shell脚本
---------
root@ops-docker-1:/tmp/data# cat ratio.sh
#!/bin/bash
#USAGE: sh ratio.sh src-file dst-file
>$2
i=1
for n in $(grep -E -o "([0-9]*)" $1)
do
if [ $(($i%2)) -ne 0 ];then
echo $n >A
else
echo $n >B
A=$(cat A)
B=$(cat B)
echo $A "\t" $B "\t" $(python calculator.py $A $B)>>$2
fi
i=$(($i+1))
done
rm -rf A B
使用
----
root@ops-docker-1:/tmp/data# sh ratio.sh a.txt b.txt
root@ops-docker-1:/tmp/data# head -n 7 b.txt
2488 78353 3.18%
301 6515 4.62%
70 2349 2.98%
1500 36736 4.08%
60 1671 3.59%
12 234 5.13%
9 51 17.65%
合并两个文件格式化处理后显示
root@ops-docker-1:/tmp/data# head -n 7 ab.txt
--------------
北京 总计:2488 北京 总计:78353 2488 78353 3.18%
电信 301 电信 6515 301 6515 4.62%
移动 70 移动 2349 70 2349 2.98%
联通 1500 联通 36736 1500 36736 4.08%
铁通 60 铁通 1671 60 1671 3.59%
教育网 12 教育网 234 12 234 5.13%
鹏博士 9 鹏博士 51 9 51 17.65%