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()
  • 相关阅读:
    python模块--time模块
    python模块--如何相互调用自己写的模块
    Animating Views Using Scenes and Transitions
    fragment 切换
    android textview 设置text 字体
    android intent 5.1
    android EditView ime
    animation of android (4)
    animation of android (3)
    animation of android (2)
  • 原文地址:https://www.cnblogs.com/yudongyang/p/python.html
Copyright © 2011-2022 走看看