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访问系统环境变量的方法
Apr 29 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
Python中扩展包的安装方法详解
Jun 14 Python
Python实现购物系统(示例讲解)
Sep 13 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
django中嵌套的try-except实例
May 21 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Pycharm快捷键配置详细整理
Oct 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导出csv文件,可导出前导0实例代码
2016/11/16 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
php集成开发环境详解
2019/09/24 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
python实现双色球随机选号
2020/01/01 Python
pycharm快捷键汇总
2020/02/14 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Python函数调用追踪实现代码
2020/11/27 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
数据库笔试题
2013/05/09 面试题
骨干教师培训感言
2014/01/16 职场文书
军训 自我鉴定
2014/02/03 职场文书
迟到检讨书500字
2014/02/05 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
十八届三中全会感言
2014/03/10 职场文书
目标责任书范文
2014/04/14 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript