当前位置 博文首页 > Python读取文件夹下的所有文件实例代码

    Python读取文件夹下的所有文件实例代码

    作者:励志故事 时间:2021-05-03 18:09

    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)
    

    总结

    js
    下一篇:没有了