python計算兩個數的百分比
阿新 • • 發佈:2019-02-05
工作中遇到了要計算兩個數百分比的問題,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%