首頁 > 軟體

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!


IT145.com E-mail:sddin#qq.com