阿里云ECS下载的csv转换成xlsx(替换某些字符)

import pandas as pd
import numpy as np
import os,time
import xlwings as xw
# C:\server_support\server_support_20211022\04_aliyun\01_ECS\20221025
# 用来存放 文件名截取的账号
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('_ecs')[0])
    # 获取多列数据,并存入一个数组中,需要用二维数组
    col_2 = data[['名称','操作系统', '状态', '描述', '公网IP', '内网IP','弹性IP','CPU','内存','付费类型','创建时间(UTC)','到期时间(UTC)']]
    data_2.append(np.array(col_2))
  return data_2

##################################################
# 写入数据
def wr_data(data_2):
  # 创建一个 新的 excel 文件
  app = xw.App(visible=False, add_book=False)
  wb = app.books.add()
  lst = ['阿里云账号','名称','操作系统', '状态', '描述', '公网IP', '内网IP','弹性IP','CPU','内存','付费类型','创建时间(UTC)','到期时间(UTC)']
  # 标题行,从A1 单元格开始往后写
  wb.sheets['sheet1'].range('A1').value = lst
  # 从第二行,第2列 开始写入,我们提取出来的数据内容
  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, 2).value = data_3[j]
      # 每一行的第一个单元格都插入一个,该文件 截取出来的 账号
      wb.sheets['sheet1'].range(rows + 1, 1).value = data_1[i]
  # 设置自动列宽
  wb.sheets['sheet1'].range('A1:M{}'.format(rows)).columns.autofit()

  #设置行高
  wb.sheets['sheet1'].range('A1','A{}'.format(rows)).row_height = 20

  # 设置 单元格 ,底纹 填充 用 rgb 数字代替,
  wb.sheets['sheet1'].range('A1:M1').color = (0, 0, 128)

  # 设置 单元格字体颜色
  wb.sheets['sheet1'].range('A1:M1').api.Font.Color = 0xffffff

  ## 字体加粗
  wb.sheets['sheet1'].range('A1:M1').api.Font.Bold = True

  ## 设置字体大小
  wb.sheets['sheet1'].range('A1:M1').api.Font.Size = 12

  # sheet1 表,改名
  wb.sheets['sheet1'].name = 'ECS'
  ### 替换 字符串类似于 Data Center Edition 64bit Chinese Edition 为空
  rows = wb.sheets['ECS'].used_range.last_cell.row
  for cell in wb.sheets['ECS'].range('A1:M{}'.format(rows)):
   dic1 = {"chr1": "Data Center Edition 64bit Chinese Edition",
           "chr2": "with Container DataCenter Edition 64bit Chinese",
           "chr3": "Data Center Edition 64bit English Edition",
           "chr4": "DataCenter Edition 64bit Chinese Edition",
           "chr5": "with Container DataCenter Edition 64bit English Edition",
          "chr6": "DataCenter Edition 64bit English Edition",
          "chr7": "LTS 64bit DengBao2.0 Class 3 Edition"
         }
    try:
      for intem in dic1.items():
        k, v = intem
        if dic1[k] in cell.value:
          cell.value = cell.value.replace(dic1[k], '')
    except:
      pass
  ## 再次 设置自动列宽
  wb.sheets['ECS'].range('A1:M{}'.format(rows)).columns.autofit()

  # 保存文件
  new_file = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
  wb.save('C:/ser/04_ali/01_ECS/count/ecs_count-}.xlsx'.format(new_file))
  time.sleep(6)
  wb.close()
  app.quit()

file_dir = input('请输入ECS文件夹路径:')
wr_data(lst_file(file_dir))