python获取指定目录下所有文件名os.walk和os.listdir
python获取指定目录下所有文件名os.walk和os.listdir
觉得有用的话,欢迎一起讨论相互学习~Follow Me
os.walk
- 返回指定路径下所有文件和子文件夹中所有文件列表
- 其中文件夹下路径如下:
import os
def file_name_walk(file_dir):
for root, dirs, files in os.walk(file_dir):
print("root", root) # 当前目录路径
print("dirs", dirs) # 当前路径下所有子目录
print("files", files) # 当前路径下所有非目录子文件
file_name_walk("./")
# root ./
# dirs ['test']
# files ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py']
# root ./test
# dirs []
# files ['test.txt']
- 对于os.walk会遍历指定目录下的所有子文件夹和子文件夹中的所有文件,例如此处的root文件夹中有test文件夹和'200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py'等文件
然后遍历子文件夹test,发现其中并没有子文件夹,所以dirs=[],但是子文件夹test中有文本文件test.txt.所以有['test.txt']的值
os.listdir()
- 返回指定路径下所有的文件和文件夹列表,但是子目录下文件不遍历。
def file_name_listdir(file_dir):
for files in os.listdir(file_dir): # 不仅仅是文件,当前目录下的文件夹也会被认为遍历到
print("files", files)
file_name_listdir("./")
# files 200-2000(1).txt
# files 200-2000(2).txt
# files 200-2000(3).txt
# files getFileName.py
# files test
- 注意:使用os.listdir函数不仅是文件,文件夹也会被遍历到,例如test即是一个文件夹。
全局变量保存
- 如果想要保存文件名可以使用全局变量或者局部变量进行保存。
- 如果使用全局变量,则每次调用函数的信息都存在全局列表中
Files_Global = []
def file_name_listdir_global(file_dir):
for files in os.listdir(file_dir):
Files_Global.append(files)
file_name_listdir_global(".")
file_name_listdir_global("./test")
# 最终的结果都会被保存到全局列表变量中
print("Files_Global: ", Files_Global)
# Files_Global: ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py', 'test', 'test.txt']
- 此处使用os.listdir函数将遍历得到的结果都保存到全局变量Files_Global中,则其中包含了遍历
"."当前文件夹和"./test"当前文件夹中的test文件夹中的所有信息
局部变量和函数返回
- 局部变量,只保存本次函数调用得到的结果,通过返回值保存
- 建议使用局部变量加返回值的方式
def file_name_listdir_local(file_dir):
files_local = []
for files in os.listdir(file_dir):
files_local.append(files)
return files_local
file_local_1 = file_name_listdir_local(".")
file_local_2 = file_name_listdir_local("./test")
print("file_local_1:", file_local_1) # 当前目录下文件
print("file_local_2", file_local_2) # 子目录test下文件
# file_local_1: ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py', 'test']
# file_local_2 ['test.txt']
通过os.path.splitext指定文件类型
- 选取特定文件类型
- 选取文件名中所有txt后缀名的文本文件
def file_name(file_dir):
File_Name=[]
for files in os.listdir(file_dir):
if os.path.splitext(files)[1] == '.txt':
File_Name.append(files)
return File_Name
txt_file_name=file_name(".")
print("txt_file_name",txt_file_name)
# txt_file_name ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt']
python获取指定目录下所有文件名os.walk和os.listdir的更多相关文章
- Python获取指定目录下所有子目录、所有文件名
需求 给出制定目录,通过Python获取指定目录下的所有子目录,所有(子目录下)文件名: 实现 import os def file_name(file_dir): for root, dirs, f ...
- python获取指定目录下特定格式的文件名
之前一直用windows下的bat脚本获取一个目录下的指定格式的文件名,如下所示: dir *.jpg /b/s > train.set pause 十分简单,将这个bat文件放到你想要获取文件 ...
- python中获取指定目录下所有文件名列表的程序
http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...
- python获取指定目录下的所有指定后缀的文件名
使用到的函数有: os.path.splitext():分离文件名与扩展名 os.path.splitext(file)[] 获得文件名 os.path.splitext(file)[] 获得文件扩展 ...
- TDirectory.GetFiles获取指定目录下的文件
使用函数: System.IOUtils.TDirectory.GetFiles 所有重载: class function GetFiles(const Path: string): TStringD ...
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
- python实现指定目录下批量文件的单词计数:并发版本
在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...
- Python--通过索引excel表将文件进行文件夹分类的脚本+读取指定目录下所有文件名的脚本
1.通过索引excel表将文件进行文件夹分类的脚本,此脚本由于将ip和id对应并生成对应id的文件夹将文件进行分类,也可以任意规定表格内容,通过vul_sc_ip.txt和xlsx文件进行索引. # ...
- c# 获取指定目录下的所有文件并显示在网页上
参考文献: FileInfo 的使用 https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...
随机推荐
- TDD 与 CI 在 Python 中的实践
社区化产品的长久生存之道可能莫过于对迭代周期的控制.还记得以前采用老土的阶段开发的年代,将软件生命周期分为各个阶段,当到达每个阶段的里程碑则集中所有的资源.人力作全面冲刺.每次到了里程碑的检查点冲过了 ...
- 基于.NET Standard的分布式自增ID算法--Snowflake
概述 本篇文章主要讲述分布式ID生成算法中最出名的Snowflake算法.搞.NET开发的,数据库主键最常见的就是int类型的自增主键和GUID类型的uniqueidentifier. 那么为何还要引 ...
- JMeter:生成漂亮的接口/压力测试的HTML报告
JMeter生成HTML网页报告(非gui模式操作) 我们做性能测试的时候会经常使用一些性能测试工具,比如loardrunner和jmeter,我个人比较喜欢Jmeter这个工具,jmeter之前版本 ...
- Vulkan入门流程
原文摘自Vulkan入门流程 Vulkan是Khronos Group(OpenGL标准的维护组织)开发的一个新API,它提供了对现代显卡的一个更好的抽象,与OpenGL和Direct3D等现有api ...
- FUNMVP:几张图看懂区块链技术到底是什么?(转载)
几张图看懂区块链技术到底是什么? 本文转载自:http://www.cnblogs.com/behindman/p/8873191.html “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人 ...
- @JsonFormat时间格式化注解使用
@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss ...
- Java 8 新特性---------Stream
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象 ...
- java BigDecimal实现精确加减乘除运算
java.math.BigDecimal.BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a doubl ...
- Linux第六周学习总结——进程额管理和进程的创建
Linux第六周学习总结--进程额管理和进程的创建 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/cour ...
- 第二阶段冲刺——two
个人任务: 王金萱:优化作业查询结果,按学号排列. 马佳慧:测试登录功能并优化. 司宇航:修复博客作业查询功能. 季方:测试博客作业查询功能. 站立会议: 任务看板和燃尽图: