python 批量csv文件转换为excel格式

因为用到了模块openpyxl python自带库不含有 需要先安装这个模块。

-安装模块
pip install openpyxl
(当然如果你是windows系统建议参照该链接先安装pip 然后在执行pip安装安装地址)

-环境变量一定要设置好(cmd窗口 python 和pip命令验证)

-实现代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import openpyxl
import csv
import os


def walkFile(file):
    for root, dirs, files in os.walk(file):

        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        
        #转换文件类型
        Const_Image_Format = ["csv"]
        # 遍历文件
        times=1
        for f in files:
            print('************************************************************')
            csv_file_name=os.path.join(root, f)
            file_name = os.path.basename(csv_file_name)
            excel_file_name = file_name.split('.')[0]
            file_type = file_name.split('.')[1]
            print(file_type)
            if  file_type in Const_Image_Format :
                   # 创建工作簿对象
                   print('This is ' + str(times) + ' Convert Start')
                   work_book = openpyxl.Workbook()
                   # 创建sheet
                   work_sheet = work_book.create_sheet(title="sheet1")
                   csvfile = open(csv_file_name, 'r',encoding='UTF-8')
                   # 获取csv.reader
                   lines = csv.reader(csvfile)
                   print(lines)
                   # row
                   row = 1
                   
                   # csv文件中假如不包含标题可以使用如下代码加入
                   # title_list 中写入每个标题名称以逗号相隔
                   # title_list = [u'标题']
                   #
                   # # 写入第一行,标题
                   # for i in range(1, title_list.__len__() + 1):
                   #     work_sheet.cell(row=row, column=i).value = title_list[i - 1]
                   
                   # 写入从csv读取的内容 如使用了以上代码 这里行数要加一
                   for line in lines:
                       # print(line)
                       lin = 1
                       for i in line:
                           work_sheet.cell(row=row, column=lin).value = i
                           lin += 1
                       row += 1
                   
                   # 关闭文件
                   csvfile.close()
                   # 保存工作表
                   work_book.save(excel_file_name + '.xlsx')
                   print('This is ' + str(times) + ' Convert End')
                   print('************************************************************')
                   #转换过后的文件重命名
                   os.rename(csv_file_name,csv_file_name + 'bak')
                   times = times + 1

        # 遍历所有的文件夹
        for d in dirs:
            print(os.path.join(root, d))


def main():
    walkFile(r'C:/NewPan/lzg_python/csv/')
执行效果
执行结果
生成文件
生成文件
转换后文件重命名处理,防止多次转换
转换后重命名
源文件
源文件内容
转换excel后效果
转换后excel

你可能感兴趣的:(python 批量csv文件转换为excel格式)