python3读取RDS导出的csv文件中指定列数据保存为xlsx文件

## pandas numpy xlwings 插件需要先安装
import pandas as pd
import numpy as np
import os,time
import xlwings as xw
## 将下载好的 RDS csv文件,取相应的列,保存为一个xlsx文件
## D:/ali_rds-02
## 用来存放 文件名截取的账号
data_1 = []
## 用来存放 提取的 所有文件的 数据内容 的列表
data_2 = []
## data_3 用来存放 单个文件 读取 出来 的 多行数据,
data_3 = ''
def lst_file(file_dir):
    ## 列出 csv 文件目录下面的,所有的csv文件,返回的是一个列表
    lst_csv = os.listdir(file_dir)
    ## 遍历 这个 列表,并读出 我们要提取的内容,追加到 存放数据内容的列表中
    for i in range(0,len(lst_csv)):
        data = pd.read_csv(file_dir+'/'+lst_csv[i])
        data_1.append(lst_csv[i].split('_rds')[0])
        # 获取多列数据,并存入一个数组中,需要用二维数组
       col_2 = data[
['DBInstanceId(实例ID)', 'DBInstanceDescription(实例描述)','Engine(数据库类型)', 'EngineVersion(数据库版本)', 'CreationTime(创建时间)', 'ExpireTime(到期时间)',
'PrivateString(内网连接地址)']]
       data_2.append(np.array(col_2))
    return data_2
##################################################
## 写入数据
def wr_data(data_2):
    ## 创建一个 新的 excel 文件
    app = xw.App(visible=True, add_book=False)
    wb = app.books.add()
   lst = ['DBInstanceId(实例ID)','DBInstanceDescription(实例描述)', 'Engine(数据库类型)', 'EngineVersion(数据库版本)', 'CreationTime(创建时间)', 'ExpireTime(到期时间)',
'PrivateString(内网连接地址)','阿里云账号']
    ## 标题行,从A1 单元格开始往后写
    wb.sheets['sheet1'].range('A1').value = lst
    ## 从第二行,第1列 开始写入,我们提取出来的数据内容
    for i in range(0, len(data_2)):
    ##  每一个文件 里面 读取出来的行,取出来,存放在另一个列表
    data_3 = data_2[i]
    ## 对一个文件 里面的行的列表,再循环遍历
        for j in range(len(data_3)):
            ## 当前表 里面有数据的行数
           rows = wb.sheets['sheet1'].used_range.last_cell.row
           wb.sheets['sheet1'].range(rows+1, 1).value = data_3[j]
           ## 每一行后面都插入一个 该文件 截取出来的 账号
           wb.sheets['sheet1'].range(rows + 1, 8).value = data_1[i]
  rows = rows + 1
  ## 设置自动列宽,第一行到第二行,后面的会自动
     wb.sheets['sheet1'].range('A1:H{}'.format(rows)).columns.autofit()
    #print(rows)
    #设置行高
     wb.sheets['sheet1'].range('A1','A{}'.format(rows)).row_height = 20
  # 设置 单元格 ,底纹 填充 用 rgb 数字代替,
    wb.sheets['sheet1'].range('A1:H1').color = (0,0,128)
   #设置 单元格字体颜色
    wb.sheets['sheet1'].range('A1:H1').api.Font.Color = 0xffffff
   ## 字体加粗
    wb.sheets['sheet1'].range('A1:H1').api.Font.Bold = True
   ## 设置字体大小
    wb.sheets['sheet1'].range('A1:H1').api.Font.Size = 12
   # sheet1  更改名称
   wb.sheets['sheet1'].name = 'RDS'
  ## 保存文件
    new_file = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
    wb.save('../rds-file/rds-{}.xlsx'.format(new_file))
    wb.close()
   app.quit()
file_dir = input('请输入RDS文件夹路径:')
wr_data(lst_file(file_dir))