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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM