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中使用Boolean操作符做真值测试实例
Jan 30 Python
Python实现的括号匹配判断功能示例
Aug 25 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Python接收手机短信的代码整理
Aug 02 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 Python
pandas map(),apply(),applymap()区别解析
Feb 24 Python
python numpy中setdiff1d的用法说明
Apr 22 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
js实现漫天星星效果
2017/01/19 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python批量生成本地ip地址的方法
2015/03/23 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python issubclass 和 isinstance函数
2019/07/25 Python
python 魔法函数实例及解析
2019/09/25 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
平面设计师工作职责范文
2013/12/03 职场文书
化学教师自荐信范文
2013/12/28 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
学生党员公开承诺书
2014/05/28 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
《所见》教学反思
2016/02/23 职场文书
高三英语教学反思
2016/03/03 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript