工作中遇到了要計(jì)算兩個(gè)數(shù)百分比的問(wèn)題,python 2.7 環(huán)境。
代碼:
#!/usr/bin/env python#function: 計(jì)算百分比#USAGE: python calculator.py num1 num2import sysa=sys.argv[1]a=float(a)b=sys.argv[2]b=float(b)示例:root@ops-docker-1:/tmp/data# python calculator.py 3 1127.27%需求:要計(jì)算一堆數(shù)的百分比 并記錄在文件中
原始文件-------root@ops-docker-1:/tmp/data# head -n 7 a.txt北京 總計(jì):2488 北京 總計(jì):78353 電信 301 電信 6515 移動(dòng) 70 移動(dòng) 2349 聯(lián)通 1500 聯(lián)通 36736 鐵通 60 鐵通 1671 教育網(wǎng) 12 教育網(wǎng) 234 鵬博士 9 鵬博士 51shell腳本---------root@ops-docker-1:/tmp/data# cat ratio.sh #!/bin/bash#USAGE: sh ratio.sh src-file dst-file>$2i=1for 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))donerm -rf A B使用----root@ops-docker-1:/tmp/data# sh ratio.sh a.txt b.txtroot@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%合并兩個(gè)文件格式化處理后顯示root@ops-docker-1:/tmp/data# head -n 7 ab.txt--------------北京 總計(jì):2488 北京 總計(jì):78353 2488 78353 3.18% 電信 301 電信 6515 301 6515 4.62% 移動(dòng) 70 移動(dòng) 2349 70 2349 2.98% 聯(lián)通 1500 聯(lián)通 36736 1500 36736 4.08% 鐵通 60 鐵通 1671 60 1671 3.59% 教育網(wǎng) 12 教育網(wǎng) 234 12 234 5.13% 鵬博士 9 鵬博士 51 9 51 17.65%新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注