Python CSV 转 XLS、XLSX

Python CSV 转 XLS、XLSX,第1张

附上参考链接:

Python之xlsx文件与csv文件相互转换_张行之的博客-CSDN博客_csv转换xlsx

对原博主代码不足及错误部分进行修正。

import csv
import os

import pandas as pd
import xlwt

'''
所需库:pandas,xlwt,xlrd
依照个人环境,
只有一个python版本或者pip命令已经对应项目版本python可以直接用pip,
否则推荐使用一下命令(x指版本号,3.10->3x->310)
python3x -m pip install pandas
python3x -m pip install xlwt
python3x -m pip install xlrd
windows下出现权限不足无法安装时:
python3x -m pip install pandas -user
python3x -m pip install xlwt -user
python3x -m pip install xlrd -user
'''

#定义文件路径
#EXCEL_PATH = "/Users/xxxxx/Desktop/xxxxxx.csv"
EXCEL_PATH = input("Input CSV FILE PATH or Put CSV FILE in THIS WINDOWS.\n>>").strip("'")
EXCEL_XLS_NAME = EXCEL_PATH.replace(EXCEL_PATH.split(".")[-1],"")+"xls"
EXCEL_XLSX_NAME = EXCEL_PATH.replace(EXCEL_PATH.split(".")[-1],"")+"xlsx"

#文件类型转换 CSV->XLS->XLSX
if os.path.splitext(EXCEL_PATH)[1] in {".csv",".CSV"}:

    ######## 转换 CSV->XLS ###########
    #encoding:utf-8,gbk,shift-jis
    with open(EXCEL_PATH, 'r', encoding='shift-jis',errors="ignore") as CSV_DATA:
        EXCEL_WRB = xlwt.Workbook()
        EXCEL_SHT = EXCEL_WRB.add_sheet('data')
        SHEET_ROW = 0
        for SHEET_LINE in csv.reader(CSV_DATA):
            SHEET_CELL = 0
            for CELL in SHEET_LINE:
                EXCEL_SHT.write(SHEET_ROW, SHEET_CELL, CELL)
                SHEET_CELL += 1
            SHEET_ROW += 1
        EXCEL_WRB.save(EXCEL_XLS_NAME)
    ###################################

    ######## 转换 XLS->XLSX ###########
    #只转换XLS文件的可以注释掉或者删除这部分
    XLS_DATA = pd.DataFrame(pd.read_excel(EXCEL_XLS_NAME,engine="xlrd"))
    XLS_DATA.to_excel(EXCEL_XLSX_NAME, index=False)
    os.remove(EXCEL_XLS_NAME)
    ###################################

else:
    print("FILE IS NOT A CSV FILE.\n")
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/786095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存