年底了,又到了算阿里云费用的时候了
1、导出阿里云的实例费用账单
2、请保证您的当前目录只有一个csv文件
3、目前只支持能分配财务单元的费用统计
4、执行本脚本请传入参数(参数是财务单元)
5、执行结果如下,只有这几列
‘账期’, ‘财务单元’,‘产品明细Code’, ‘产品明细’, ‘消费类型’, ‘账单类型’, ‘实例ID’, ‘实例昵称’, ‘资源组’, ‘实例配置’, ‘实例规格’, ‘私网IP’,
‘应付金额’
# -*- coding: UTF-8 -*-
import csv
import sys,os
from openpyxl import Workbook
from openpyxl.styles import Alignment
from openpyxl.styles import Font
#不支持oss waf ddos 快照统计
class ExcelWrite():
def __init__(self,data,result_file_name,keys):
self.__data = data
self.__titile = self.__data[0]
self.__index_1 = self.__titile.index('账期')# 确定每一列的索引
self.__index_2 = self.__titile.index('财务单元')
self.__index_3 = self.__titile.index('产品明细Code')
self.__index_4 = self.__titile.index('产品明细')
self.__index_5 = self.__titile.index('消费类型')
self.__index_6 = self.__titile.index('账单类型')
self.__index_7 = self.__titile.index('实例ID')
self.__index_8 = self.__titile.index('实例昵称')
self.__index_9 = self.__titile.index('资源组')
self.__index_10 = self.__titile.index('实例配置')
self.__index_11 = self.__titile.index('实例规格')
self.__index_12 = self.__titile.index('私网IP')
self.__index_13 = self.__titile.index('应付金额')
self.__result_file_name = result_file_name
self.__keys = keys #需要查找的财务单元
self.__wb = Workbook()
self.__sheet_pay = self.__wb.active
self.__sheet_pay.title = u'总费用'
#根据产品的code过滤每一种产品 并相应放到__product_data 里面
self.__product = [['ecs','vm'],['rds','rords','bards'],['slb','slbpre'],['yundisk'],['prepaid_kvstore'],['badds'],['dtspre','dtspost'],['bandwidth_package','nat_gw','cbwp'],['ipv6bandwidth','ipv6gateway'],
['elasticsearch','elasticsearchpre'],['cdn'],['mssp'],['eip'],['eci_betav1'],['ons','alikafka_pre'],['ri_pre'],['hbrpost'],['hdm_pre'],['opensearch_post'],['ri'],['mts'],['kms'],['cdi'],['ddos_fl_pre'],['sls'],['live'],['dmsenterprise'],
['cbs_post'],['sas'],['pts','ptsbag'],['arms','arms_app_post'],['1'],['cas'],['cms_post'],['pvtzpost'],['alidns_pre'],['alimail'],['smartag']]
#根据产品生成数据
self.__product_data = [{'ecs':[]}, {'rds':[]}, {'slb':[]}, {'yundisk':[]},
{'prepaid_kvstore':[]}, {'badds':[]}, {'dtspre':[]},
{'bandwidth_package':[]}, {'ipv6bandwidth':[]},
{'elasticsearch':[]}, {'cdn':[]}, {'mssp':[]}, {'eip':[]}, {'eci_betav1':[]},
{'ons':[]}, {'ri_pre':[]}, {'hbrpost':[]}, {'hdm_pre'