zoukankan      html  css  js  c++  java
  • python 通过使用pandas的实现的Excel的批量转换CSV文件的处理

    ---恢复内容开始---

    最近同事在处理文件导入的时候需要把一批文件换成CSV的格式,但是直觉修改后缀是不生效的,而且xlsx和xls的文件没法直接换成CVS的文件,所以找了一下方式,并且自己实现了python的转换方式。代码如下

    文件需要导入pandas 还要引入xlrd

    代码是基于python3.6的环境。

    import pandas as pd
    import os
    
    # 读取一个目录里面的所有文件:
    def read_path(path):
        dirs = os.listdir(path)
        return dirs
    
    def getpath(dir):
        # pwd = os.getcwd()
        # father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+".")
        file_path = '/Users/XXXX/Desktop'#桌面路径地址,地址可以根据自己需要修改
        full_path=file_path+'/'+dir+'/'
        return full_path
    
    
    #数据源Excel如果有多个sheet,那么则需要一一遍历输出
    def xlsdata_to_csv(xlsx_data,tag_path):
        for K, V in xlsx_data.items():
            tag_file = tag_path +  K + '.csv'
            if not V.empty:
                V.to_csv(tag_file, encoding='utf_8_sig')
    
    
    def main():
        source_path = getpath('test2')#存放excel文件
        tag_path = getpath('test3')#输出csv的文件
        dir = read_path(source_path)
        for i in dir :
            source_file = source_path+i
            xlsx_data = pd.read_excel(source_file, sheet_name=None)
            csv_path = tag_path+i.split('.')[0]#因为文件包含两个.所以分割时候做了特殊处理
            xlsdata_to_csv(xlsx_data,csv_path)
    
    if __name__ == '__main__':
    
        main()

    ---恢复内容结束---

    最近同事在处理文件导入的时候需要把一批文件换成CSV的格式,但是直觉修改后缀是不生效的,而且xlsx和xls的文件没法直接换成CVS的文件,所以找了一下方式,并且自己实现了python的转换方式。代码如下

    文件需要导入pandas 还要引入xlrd

    代码是基于python3.6的环境。

    import pandas as pd
    import os
    
    # 读取一个目录里面的所有文件:
    def read_path(path):
        dirs = os.listdir(path)
        return dirs
    
    def getpath(dir):
        # pwd = os.getcwd()
        # father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+".")
        file_path = '/Users/XXXX/Desktop'#桌面路径地址,地址可以根据自己需要修改
        full_path=file_path+'/'+dir+'/'
        return full_path
    
    
    #数据源Excel如果有多个sheet,那么则需要一一遍历输出
    def xlsdata_to_csv(xlsx_data,tag_path):
        for K, V in xlsx_data.items():
            tag_file = tag_path +  K + '.csv'
            if not V.empty:
                V.to_csv(tag_file, encoding='utf_8_sig')
    
    
    def main():
        source_path = getpath('test2')#存放excel文件
        tag_path = getpath('test3')#输出csv的文件
        dir = read_path(source_path)
        for i in dir :
            source_file = source_path+i
            xlsx_data = pd.read_excel(source_file, sheet_name=None)
            csv_path = tag_path+i.split('.x')[0]#因为文件包含两个.所以分割时候做了特殊处理
            xlsdata_to_csv(xlsx_data,csv_path)
    
    if __name__ == '__main__':
    
        main()
  • 相关阅读:
    android学习之4种点击事件的响应方式
    python Eve RESTFul 尝试笔记
    完成端口学习笔记(一):完成端口+控制台 实现文件拷贝
    POJ3080:Blue Jeans
    如何让ros支持C++11标准
    ros卸载
    文件读写
    sys.exit()主动结束程序
    python函数查询、数学和比较操作符、二元操作符
    labellmg使用方法
  • 原文地址:https://www.cnblogs.com/yudongyang/p/python.html
Copyright © 2011-2022 走看看