2021-05-12 14:32:11
Python讀取資料夾下的所有檔案範例程式碼
2021-04-02 13:01:18
Python讀取資料夾下的所有檔案
os.listdir(path)是得到在path路徑下所以檔案的名稱列表。
open(path)是開啟某個檔案。
iter是python的迭代器。
所以讀取某資料夾下的所有檔案如下:
import os path = "D:/Python34/news" #資料夾目錄 files= os.listdir(path) #得到資料夾下的所有檔名稱 s = [] for file in files: #遍歷資料夾 if not os.path.isdir(file): #判斷是否是資料夾,不是資料夾才開啟 f = open(path+"/"+file); #開啟檔案 iter_f = iter(f); #建立迭代器 str = "" for line in iter_f: #遍歷檔案,一行行遍歷,讀取文字 str = str + line s.append(str) #每個檔案的文字存到list中 print(s) #列印結果
你也可以把遍歷資料夾的操作定義成一個函數,如果是資料夾就不斷迭代遍歷。進而讀取資料夾下所有的檔案(包括資料夾裡中的檔案)
Python批次讀取資料夾下所有檔案
現給定一個資料夾,下面有很多檔案(可能是一天一個資料檔案等),我們要讀取該資料夾下面的所有檔案,如:
程式碼(包括刪除空檔案,有參考網上程式碼):
# -*- coding: utf-8 -*- """ Created on Wed Nov 20 23:28:00 2019 @author: 1 """ import pandas as pd import os # 刪除空資料夾,否則會報錯 def traverse(filepath): # 遍歷filepath下所有檔案,包括子目錄 files = os.listdir(filepath) for fi in files: fi_d = os.path.join(filepath, fi) if os.path.isdir(fi_d): # 判斷是否為資料夾 if not os.listdir(fi_d): # 如果資料夾為空 os.rmdir(fi_d) # 刪除這個空資料夾 else: traverse(fi_d) else: file = os.path.join(filepath, fi_d) if os.path.getsize(file) == 0: # 檔案大小為0 os.remove(file) # 刪除這個檔案 def get_file(path): # 建立一個空列表 files = os.listdir(path) files.sort() # 排序 list = [] for file in files: if not os.path.isdir(path + file): # 判斷該檔案是否是一個資料夾 f_name = str(file) # print(f_name) tr = '' # 多增加一個斜槓 filename = path + tr + f_name list.append(filename) return (list) if __name__ == '__main__': path = r'D:workspacepythonm1T-drive Taxi Trajectoriesreleasetaxi_log_2008_by_id' traverse(path) list = get_file(path) for i in range(10): # 表示讀10個檔案 df = pd.read_csv(list[i], sep=',') df.to_csv('taxi2.csv', mode='a', header=None)
總結
到此這篇關於Python如何讀取資料夾下所有檔案的文章就介紹到這了,更多相關Python讀取資料夾內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章