Python——查看目录下所有的目录和文件
写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作,然而python有现成的库,只需要2个循环就可以搞定。
import os
def all_path(dirname):
result = []#所有的文件
for maindir, subdir, file_name_list in os.walk(dirname):
print("1:",maindir) #当前主目录
print("2:",subdir) #当前主目录下的所有目录
print("3:",file_name_list) #当前主目录下的所有文件
for filename in file_name_list:
apath = os.path.join(maindir, filename)#合并成一个完整路径
result.append(apath)
return result
print(all_path("E:\myTest"))

程序运行结果如下:
['E:\\myTest\\kuang3.png', 'E:\\myTest\\txt1.txt', 'E:\\myTest\\txt2.txt', 'E:\\myTest\\YYGB1.png', 'E:\\myTest\\YYGB2.png', 'E:\\myTest\\test1\\txt11.txt', 'E:\\myTest\\test2\\txt21.txt', 'E:\\myTest\\test2\\txt22.txt' ]
当然现在我们是获取了所有的文件,如果我们只想要某一个类型的文件,那么也很简单,写个过滤就好了。所以修改后的代码如下:
import os
filter=[".txt"] #设置过滤后的文件类型 当然可以设置多个类型
def all_path(dirname):
result = []#所有的文件
for maindir, subdir, file_name_list in os.walk(dirname):
# print("1:",maindir) #当前主目录
# print("2:",subdir) #当前主目录下的所有目录
# print("3:",file_name_list) #当前主目录下的所有文件
for filename in file_name_list:
apath = os.path.join(maindir, filename)#合并成一个完整路径
ext = os.path.splitext(apath)[1] # 获取文件后缀 [0]获取的是除了文件名以外的内容
if ext in filter:
result.append(apath)
return result
print(all_path("E:\myTest"))
#运行结果
#['E:\\myTest\\txt1.txt', 'E:\\myTest\\txt2.txt', 'E:\\myTest\\test1\\txt11.txt', 'E:\\myTest\\test2\\txt21.txt', 'E:\\myTest\\test2\\txt22.txt']
或者
def list_files(self, path):
files = []
list_dir = os.walk(path)
for maindir, subdir, all_file in list_dir: for filename in all_file:
apath = os.path.join(maindir, filename)
if apath.endswith('.txt'):
files.append(apath)
Python——查看目录下所有的目录和文件的更多相关文章
- 解决使用intellij idea开发MAVEN项目在target目录下不存在mapper.xml文件
原 解决使用intellij idea开发MAVEN项目在target目录下不存在mapper.xml文件 原文章链接:https://blog.csdn.net/beauxie/article/de ...
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- php目录下的ext目录中,执行的命令
php的目录下的ext目录,如果你只需要一个基本的扩展框架的话,执行下面的命令: ./ext_skel --extname=module_name module_name是你自己可以选择的扩展模块的名 ...
- springmvc web-info目录下无法引入的js文件无效
今天在联系spring的时候而然遇到了个不起眼的问题.那就是在html或者说jsp页面中引用js文件的时候总是提示找不到路径.eclipse更是抛出 No mapping to aa.js. 我就奇怪 ...
- Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例
1. 复制指定目录下指定后缀名的文件并修改名称的案例 需求:复制指定目录下的指定文件,并修改后缀名. • 指定的文件是:.java文件. • 指定的后缀名是:.jad • 指 ...
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包
- [C#] .NET Core项目修改project.json来引用其他目录下的源码等文件的办法 & 解决多框架时 project.json 与 app.config冲突的问题
作者: zyl910 一.缘由 项目规模大了后,经常会出现源码文件分布在不同目录的情况,但.NET Core项目默认只有项目目录下的源码文件,且不支持"Add As Link"方式 ...
- [ Windows BAT Script ] 删除某个目录下的所有某类文件
删除某个目录下的所有某类文件 @echo off for /R %%s in (*.txt) do ( echo %%s del %%s ) pause @echo on
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...
- shell程序---编译目录下全部.c或.cpp文件
今天大波又提起昨天我说的那个程序.这样的,起初我想写一个makefile,每次写完新代码后一键编译目录下所有的.cpp文件. 原因是用makefile的话,每次要把目标文件加紧去才能编译.感觉不方便. ...
随机推荐
- 用云开发Cloudbase,实现小程序多图片内容安全监测
前言 相比于文本的安全检测,图片的安全检测要稍微略复杂一些,当您读完本篇,将get到 图片安全检测的应用场景 解决图片的安全校验的方式 使用云调用方式对图片进行检测 如何对上传图片大小进行限制 如何解 ...
- 03 . Prometheus监控容器和HTTP探针应用
Eeporter是什么及来源? 是什么? 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prom ...
- 朋友,您可能是MCR的受害者
2018 年五月之后,微软将后续发布的所有 docker image 都推送到了 MCR (Miscrosoft Container Registry),但在中国大陆,它的速度实在是令人发指,本文将介 ...
- C#9.0 终于来了,您还学的动吗? 带上VS一起解读吧!(应该是全网第一篇)
一:背景 1. 讲故事 好消息,.NET 5.0 终于在2020年6月10日发布了第五个预览版,眼尖的同学一定看到了在这个版本中终于支持了 C# 9.0,此处有掌声,太好了!!! .Net5官方链接 ...
- 【JMeter_12】JMeter逻辑控制器__包括控制器<Include Controller>
包括控制器<Include Controller> 业务逻辑: 通过Filename的路径和文件名引用外部的jmx文件,然后对齐执行,若外部文件中没有可执行范围内的脚本内容,则跳过该逻辑控 ...
- 10 种常用 Matplotlib 图的 Python 代码
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以 ...
- WeChair项目Beta冲刺(8/10)
团队项目进行情况 1.昨日进展 Beta冲刺第八天 昨日进展: 前后端并行开发,项目按照计划有条不絮进行 2.今日安排 前端:扫码占座功能和预约功能并行开发 后端:扫码占座后端逻辑开发,编码使用 ...
- django 注册后台管理 在debug=true能行,在debug=false不能显示出管理标签
debug=true 下,如下图:
- Android Studio出现:Cause: unable to find valid certification path to requested target问题解决
Android Studio , Flutter , IDEA 工程报错 unable to find valid certification path to requested target 最新解 ...
- 探索ADC的原理(自制3位并行比较型ADC)
摘要 本文通过列举历史中出现的产品,梳理了模数转换器在20世纪30年代~~20世纪80年代末的发展历史.接下来,简要介绍模数转换器的原理.技术指标.分类和未来发展方向.最后,提供了一种自制3位FLAS ...