最近同事在處理文件導入的時候需要把一批文件換成CSV的格式,但是直覺修改尾碼是不生效的,而且xlsx和xls的文件沒法直接換成CVS的文件,所以找了一下方式,並且自己實現了python的轉換方式。代碼如下 文件需要導入pandas 還要引入xlrd 代碼是基於python3.6的環境。 ...
最近同事在處理文件導入的時候需要把一批文件換成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()