python 批量把xls,csv文件格式换转为xlsx格式

目录

前言

第一版 文件夹下所有xls转换为xlsx格式

第二版 文件夹下所有csv转换为xlsx格式

第三版 增加窗口组件,csv,xls转化为xlsx

总结

前言

西瓜WiFi初来乍到,数据清洗入门,规范文件格式,特此总结。收到的文件中以excel xls和xlsx为主,其中夹杂着csv,jpg和png,清洗完数据统一为xlsx格式,导入系统。

提示:以下是本篇文章正文内容,下面案例可供参考

第一版 文件夹下所有xls转换为xlsx格式

知识点:

os.walk() 遍历文件夹;

os.path.join()合并路径;

os.path.spiltext()分解扩展名;

os.remove()删除文件;

pd.read_excel()pandas读xls;

to_excel()pandas写入xlsx;

代码:

import os
import pandas as pd

def xls_save_as_xlsx(data_path):
    for dirpath,dirname,filenames in os.walk(data_path): #os.walk()遍历文件
        for fname in filenames:
            file_name=os.path.join(dirpath,fname)  #os.path.join()合并路径
            folder,name=os.path.splitext(file_name)  #分解扩展名
            if file_name.endswith('.xls'):
                df=pd.read_excel(file_name)  #pandas读xls文件
                df.to_excel(f"{folder}.xlsx",index=False)  #pandas写入xlsx
                print(f'{file_name} 转换成功啦!O(∩_∩)O哈哈~')
                print('-----------------------------------------------------------------------------------------------------------')
                os.remove(file_name)  #删除原xls文件
    print('finisded...')
data_path=r"C:\Users\GDY\Desktop\测试" #文件路径
xls_save_as_xlsx(data_path)   #调用一下,转换完成

测试:

python 批量把xls,csv文件格式换转为xlsx格式

第二版 文件夹下所有csv转换为xlsx格式

知识点:

os.walk() 遍历文件夹;

os.path.join()合并路径;

os.path.spiltext()分解扩展名;

os.remove()删除文件;

pd.read_csv()pandas读xls;

to_excel()pandas写入xlsx;

csv指定encoding

代码:

import os
import pandas as pd
def csv_save_as_xlsx(data_path):
    for dirpath,dirname,filenames in os.walk(data_path): #os.walk()遍历文件
        for fname in filenames:
            file_name=os.path.join(dirpath,fname)  #os.path.join()合并路径
            if file_name.endswith('.csv'):
                df=pd.read_csv(file_name)
                floder,name=os.path.splitext(file_name) #分割后缀
                df.to_excel(f"{floder}.xlsx",index=False)
                print(f'{file_name} 转换成功啦!O(∩_∩)O哈哈~')
                print('-----------------------------------------------------------------------------------------------------------')
                os.remove(file_name)
    print('finished...')
data_path=r"C:\Users\GDY\Desktop\测试"
csv_save_as_xlsx(data_path)  #调用一下,转换完成

测试:

python 批量把xls,csv文件格式换转为xlsx格式

说明:pandas 读取csv,需要指定编码方式,python默认编码方式是 UTF-8 , 个人理解csv编码可是UTF-8和GBK ,是GBK的时候需要指定encoding=’gbk’

第三版 增加窗口组件,csv,xls转化为xlsx

知识点:

os库的基本用法;

pandas库的读写;

win32com打开窗口;

代码:

import os
import pandas as pd
import easygui as eg
xls文件转xlsx
def xls_save_as_xlsx(file_name):
    df=pd.read_excel(file_name)  #pandas读xls文件
    file,name=os.path.splitext(file_name)  #分解扩展名
    df.to_excel(f"{file}.xlsx",index=False)  #pandas写入xlsx
    print(f'{file_name} 转换成功啦!O(∩_∩)O哈哈~')
    print('-----------------------------------------------------------------------------------------------------------')
    os.remove(file_name)  #删除原xls文件
#csv文件转xlsx
def csv_save_as_xlsx(file_name):
    df=pd.read_csv(file_name)  #pandas读xls文件
    file,name=os.path.splitext(file_name)  #分解扩展名
    df.to_excel(f"{file}.xlsx",index=False)
    print(f'{file_name} 转换成功啦!O(∩_∩)O哈哈~')
    print('-----------------------------------------------------------------------------------------------------------')
    os.remove(file_name)  #删除原csv文件
#打开窗口,选择一个文件夹
def pick_package():
    return eg.diropenbox()

if __name__ == "__main__":
    print('欢迎来到文件转换系统,程序正在启动...')
    print('请选择要转换的文件夹')
    data_path=pick_package()
    for dirpath,dirname,filenames in os.walk(data_path): #os.walk()遍历文件
        for fname in filenames:
            file_name=os.path.join(dirpath,fname)  #os.path.join()合并路径
            if file_name.endswith('.xls'):
                xls_save_as_xlsx(file_name)
            elif file_name.endswith('.csv'):
                csv_save_as_xlsx(file_name)
            else:
                print(f'跳过非xls文件:{file_name}')
    input('输入任意键退出')
    print('finished...')

测试:

转换前:

python 批量把xls,csv文件格式换转为xlsx格式

运行效果:

python 批量把xls,csv文件格式换转为xlsx格式

转换后:

python 批量把xls,csv文件格式换转为xlsx格式

总结

常言道,好事多磨,通过os标准库,pandas库可以实现xls,xlsx,csv文件格式的相互转化。pandas是数据清洗分析的利器,可以实现各种复杂的操作,茅庐小子对python的探索才刚刚开始,多琢磨方能见真章。

感谢您百忙之中的赏读,希望能有所收获,客官,点赞留言再走呗~或者一起探讨。。。

Original: https://blog.csdn.net/m0_62011685/article/details/122149778
Author: 西瓜WiFi
Title: python 批量把xls,csv文件格式换转为xlsx格式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/755506/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 开源:Taurus.MVC-Java 版本框架 (支持javax.servlet.*和jakarta.servlet.*双系列,内集成微服务客户端)

    版本说明: 因为之前有了Taurus.MVC-DotNet 版本框架,因此框架标了-Java后缀。 .Net 版本: 开源文章:开源:Taurus.MVC-DotNet 版本框架 …

    Python 2023年10月23日
    053
  • ToroiseGit/GitBash 设置提交信息模板设置

    导航:一、背景二、ToroiseGit实施方案:三、GitBash实施方案 一、背景:当使用git提交代码时,每次的提交信息固定,却又比较长不好记的时,还需要将模板的地址保存下来,…

    Python 2023年10月20日
    034
  • 银河麒麟(linux arm64)安装新版谷歌浏览器

    银河麒麟(linux arm64)安装新版谷歌浏览器 目的说明 软件包安装 补充说明 补充说明(2023年2月2日) 目的说明 Chrome还没有推出arm架构的软件包。只能下载C…

    Python 2023年10月10日
    0103
  • 工作经验总结——开发与协作的坑(1)

    文章背景:在公司工作时与后端开发同事合作开发了算法自动化测试Web平台,具体有什么些功能,工作原因需要保密。大部分基础服务都是PHP语言开发的,算法测试的主要工作楼主用的Pytho…

    Python 2023年8月6日
    056
  • L2M-GAN: Learning to Manipulate Latent Space Semantics for Facial Attribute Editing阅读笔记

    L2M-GAN: Learning to Manipulate Latent Space Semantics for Facial Attribute Editing 2021 C…

    Python 2023年10月25日
    040
  • 计算机编程背景

    💖 欢迎来阅读子豪的博客( JavaEE篇 🤴)👉 有宝贵的意见或建议可以在留言区 留言💻 欢迎 素质三连 点赞 关注 收藏🧑‍🚀码云仓库:补集王子的代码仓库不要偷走我小火车哦~ …

    Python 2023年11月5日
    053
  • 工厂方法在Spring源码中的运用

    我们都知道Spring中IOC是使用的工厂模式,但是对于实现细节就一知半解了,今天这篇文章就带大家解读Spring中是如何使用工厂模式的。 在上篇文章中我们懂了什么是工厂模式,这篇…

    Python 2023年10月19日
    041
  • 第一个 Python 程序

    简述 安装完 Python 后,Windows 中:开始菜单或安装目录下就会有 IDLE(开发 Python 程序的基本 IDE – 集成开发环境)、帮助手册、模块文档…

    Python 2023年5月24日
    058
  • ChatGPT

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年11月4日
    044
  • 基于python pygame实现的雨点动画

    这是一个我用来教我7岁小俊马的雨点例程,2022年网络上已经宣传未来小学生都将会python了,那么我们这些爸爸还不赶快学吗? 说句实话我本意是觉得小孩子就是先学好数理化就行了,编…

    Python 2023年9月18日
    040
  • 2023年新年烟花代码(背景音乐完整版)

    文章目录 前言 烟花效果展示 使用教程 查看源码 * HTML代码 CSS代码 JavaScript 新年祝福 ; 前言 大家过年好!新春佳节,在这个充满喜悦的日子里,愿新年的钟声…

    Python 2023年11月5日
    0112
  • tensorflow环境安装(及tensorflow虚拟环境中配置jupyter)

    tensorflow环境安装 一、安装tensorflow 打开菜单栏的Anaconda Prompt,首先要添加国内的镜像源通道,一般都是默认的国外镜像连接,下载会很慢,这里用了…

    Python 2023年8月2日
    059
  • Python记5(Marplotlib数据可视化1—基础篇

    目录 1、Matplotlib库 2、Figure对象:创建画布: 3、划分子图:subplot(行数,列数,子图序号) 4、设置中文字体:plt.rcParams[“…

    Python 2023年9月1日
    062
  • 机器学习在房屋价格预测上的应用

    前言 Python 在机器学习方面有天然的优势,那么我们今天也来涉足一下机器学习方面的技术,以下是在学习过程中的一些笔记,里面有大量的注释说明,用于理解为什么这样操作。 涉及到的数…

    Python 2023年8月13日
    056
  • pandas数据分析(二)开始了解数据

    上篇根据自己实际工作内容,写了一个简单的程序,用于读取csv文件,简单处理后输出到excel文件。接下来想更多更深入地使用pandas进行数据分析,其实最缺的是各种各样的数据集。搜…

    Python 2023年8月16日
    070
  • 数据分析工具Pandas

    一.series 一维的数据结果(series)二维的,表格型的数据结果(DataFrame) Series是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之…

    Python 2023年8月20日
    042
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球