python读取文件夹文件的方法是什么

Admin 2021-05-22 群英技术资讯 2395 次浏览

      python读取文件夹文件的操作是什么?有时候我们需要读取文件下所有的文件,那么我们要怎样做呢?下面就给大家分享一下关于python读取文件夹所有文件的操作以及diam,感兴趣的朋友可以参考。

      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读取文件夹文件的操作,大家可以关注其他相关文章。

文本转载自脚本之家
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服