python计算两个数的百分比

6 篇文章 0 订阅
3 篇文章 0 订阅

工作中遇到了要计算两个数百分比的问题,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%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值