您好,登錄后才能下訂單哦!
這篇文章給大家介紹Python遍歷目錄下文件、讀取、千萬條數據合并實例分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
遞歸 :主要目的就是遍歷文件夾和文件
對文件夾和文件進行屬性判斷
首先對文件夾進行遍歷,看文件夾里有什么樣的文件,讀取出文件夾中的所有文件
import os path= "./data" #路徑 files = os.listdir(path) #os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。 for file in files: print(file) if os.path.isfile(path+ "/"+file): #os.path.isfile(path) 判斷路徑是否為文件 print('file'+'這是一個文件') filename,extension = os.path.splitext(file) #分割路徑,返回路徑名和文件擴展名的元組 if extension == ".txt": print(filename+'這是一個文本文件') elif extension == ".xlsx": print(filename+'這是一個excel文件') if os.path.isdir(path + "/" +file): print(file+"是一個文件夾")
讀取結果:
在我們遍歷文件夾的基礎上,如何實現快速讀取指定文件,提高工作效率?
只需要在上述代碼的基礎上,導入pandas
包,read_excel_
我們所需要的文件即可
import pandas as pd import os path = './data' def get_all_files(path): print('-'*25+'函數被調用'+'-'*25) files = os.listdir(path) #os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。 for file in files: if os.path.isfile(path+ "/"+file): #os.path.isfile(path) 判斷路徑是否為文件 print('file'+">>>>>是文件") filename,extension = os.path.splitext(file) #分割路徑,返回路徑名和文件擴展名的元組 if extension == ".txt": print(filename+"#####是文本文件#####") print("讀取"+filename+"文件中的內容...........") data = pd.read_table(path+'/'+file) print(data) elif extension == ".xlsx": print(filename+'#####是Excel文件#####') print("讀取"+filename+"文件中的內容...........") data = pd.read_excel(path+'/'+file) print(data) elif extension == ".csv": print(filename+'#####是csv文件#####') print("讀取"+filename+"文件中的內容...........") data = pd.read_csv(path+'/'+file) print(data) if os.path.isdir(path + "/" +file): print(file+"¥¥¥¥¥¥¥是文件夾¥¥¥¥¥¥¥") get_all_files(path+'/'+file) get_all_files(path)
讀取成功!
在日常工作中我們有很多表格需要處理,如何批量的將很多個文件夾中的表格合并到一起?
重點:
DataFrame.append(*other*, *ignore_index=False*, *verify_integrity=False*, *sort=None*)
other:
是要添加的數據,append很不挑食,這個other可以是dataframe,dict,Seris,list等等。
ignore_index:
參數為True時將在數據合并后,按照0,1,2,3....的順序重新設置索引,忽略了舊索引。
verify_integrity:
參數為True時,如果合并的數據與原數據包含索引相同的行,將報錯。
path='./project_data' ## 聲明一個空的DataFrame,用來做最終的數據合并 final_data = pd.DataFrame() # 聲明一個空的DataFrame,用來做最終的數據合并 final_data = pd.DataFrame() def get_all_files(path): global final_data print("-"*20 + "函數被調用" + "-"*20) files = os.listdir(path) for file in files: if os.path.isfile(path + "/" +file): print(file+">>>>>是文件") filename,extension=os.path.splitext(file) # 判斷是不是文本文件 if extension == ".txt" : print(filename+"#####是文本文件#####") print("讀取"+filename+"文件中的內容...........") data = pd.read_table(path+'/' +file) print(data) elif extension=='.xlsx': print(filename+"#####是Excel文件#####") print("讀取"+filename+"文件中的內容...........") data = pd.read_excel(path+'/' +file) print(data) elif extension=='.csv': print(filename + "是csv文件,是本次需要處理的文件") # 獲取文件內容 file_data = pd.read_csv(path +'/'+file) final_data = final_data.append(file_data,ignore_index=True) #append描述:在列表ls最后(末尾)添加一個元素object print("《《《《合并"+filename+"文件數據》》》》") # 判斷是不是文件夾 elif os.path.isdir(path+'/'+file): print(file + "¥¥¥¥是文件夾¥¥¥¥¥¥") get_all_files(path + '/' + file) get_all_files(path) print("數據合并完成")
開始合并,我們來查看一下合并后的數據:
總共1000多萬條數據,如果我們用Excel的話估計要很多時間將這么多表格合并,而且會很卡。
關于Python遍歷目錄下文件、讀取、千萬條數據合并實例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。