Python讀取文件夾下的所有文件實例代碼

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:\workspace\python\m1\T-drive Taxi Trajectories\release\taxi_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讀取文件夾內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!