python使用os.listdir和os.walk获得文件的路径的方法


Posted in Python onDecember 16, 2017

本文介绍了python使用os.listdir和os.walk获得文件的路径的方法,分享给大家。具体如下:

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。

os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。

情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir

在我们的桌面上有一个file目录(文件夹),里面有三个文件

file(dir)|
  --|test1.txt
  --|test2.txt
  --|test3.txt

用下面的程序获得文件的绝对路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for filename in os.listdir(path):
 print(os.path.join(path,filename))

使用os.listdir读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径,结果如下:

C:\Users\Administrator\Desktop\file\test1.txt
C:\Users\Administrator\Desktop\file\test2.txt
C:\Users\Administrator\Desktop\file\test3.txt

情况2:递归的情况,一个目录下面既有目录(目录下面还可能有目录和文件)也有文件,如何读取里面所有文件,使用os.walk:

os.walk介绍:

我们在桌面上面建立一个file目录,里面的组织结构如下:

file(dir):
  --|file1(dir):
   --|file1_test1.txt
   --|file1_test2.txt
  --|file2(dir)
   --|file2_test1.txt
  --|file_test1.txt
  --|file_test2.txt

运行一下代码:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
 print(dirpath,dirnames,filenames)

输出结果如下:

C:\Users\Administrator\Desktop\file ['file1', 'file2'] ['file_test1.txt', 'file_test2 .txt']
C:\Users\Administrator\Desktop\file\file1 [] ['file1_test1.txt', 'file1_test2.txt']
C:\Users\Administrator\Desktop\file\file2 [] ['file2_test1.txt']

os.walk输入一个路径名称,以yield的方式(其实是一个生成器)返回一个三元组 dirpath, dirnames, filenames,

dirpath为目录的路径,为一个字符串。比如上面的 C:\Users\Administrator\Desktop\file和C:\Users\Administrator\Desktop\file\file1等。

dirnames列出了目录路径下面所有存在的目录的名称。比如在 C:\Users\Administrator\Desktop\file下面有两个目录:file1和file2,那么它就列出了这个目录路径下的目录名称。

filenames列出了目录路径下面所有文件的名称。同样在 C:\Users\Administrator\Desktop\file下面有两个文件file_test1.txt和file_test2 .txt,那么程序将会列出这两个文件名。

如何获得一个路径下面所有的文件路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
 for filename in filenames:
  print(os.path.join(dirpath,filename))

得到的结果如下:

C:\Users\Administrator\Desktop\file\file_test1.txt
C:\Users\Administrator\Desktop\file\file_test2 .txt
C:\Users\Administrator\Desktop\file\file1\file1_test1.txt
C:\Users\Administrator\Desktop\file\file1\file1_test2.txt
C:\Users\Administrator\Desktop\file\file2\file2_test1.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python lambda和Python def区别分析
Nov 30 Python
Python格式化压缩后的JS文件的方法
Mar 05 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
Python使用sorted排序的方法小结
Jul 28 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
Python numpy线性代数用法实例解析
Nov 15 Python
基于Python实现扑克牌面试题
Dec 11 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
python中编写函数并调用的知识点总结
Jan 13 Python
python读取与写入csv格式文件的示例代码
Dec 16 #Python
浅谈用VSCode写python的正确姿势
Dec 16 #Python
numpy中索引和切片详解
Dec 15 #Python
Python实现简单网页图片抓取完整代码实例
Dec 15 #Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
神经网络python源码分享
Dec 15 #Python
神经网络理论基础及Python实现详解
Dec 15 #Python
You might like
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP的几个常用加密函数
2016/02/03 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
python实现猜拳游戏
2020/03/04 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
银行自荐信范文
2013/10/07 职场文书
计算机科学与技术应届生求职信
2013/11/07 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏