您现在的位置是:首页 > 学习记录 > python学习之路

用Python批量把csv文件转换为xlsx文件的方法

2022-01-08【python学习之路】 92人已围观

简介下载的数据很多时候是直接给保存成了CSV文件,为了方便使用,有时候会需要把csv文件转换为xlsx文件,大批量的下载手动转换会很影响工作效率,所以下面就是使用python批量转换文件的方法# -*- coding utf-8 -*- import openpyxl import csv import os def walkFile(file): for root, dirs, files in os.walk(file): # root 表示当前正在访问..

下载的数据很多时候是直接给保存成了CSV文件,为了方便使用,有时候会需要把csv文件转换为xlsx文件,大批量的下载手动转换会很影响工作效率,所以下面就是使用python批量转换csv文件的方法

# -*- 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('-'*100)
            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='gb18030')
                # 获取csv.reader
                lines = csv.reader(csvfile)
                print(lines)
                # row
                row = 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('-' * 100)
                # 转换过后的文件重命名
                os.rename(csv_file_name, csv_file_name + 'bak')
                times = times + 1

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

if __name__ == '__main__':

    walkFile(r'D:/csv to xls')

在实际使用中根据自己的情况调整即可。

很赞哦! (0)

文章评论

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

站点信息

  • 建站时间:2019-07-10
  • 网站程序YzmCMS
  • 邮箱:982481365@qq.com
  • QQ号:982481365
  • 微信号:zdrgzs
  • 微信二维码:扫描二维码,关注我们