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 Web框架Flask下网站开发入门实例
Feb 08 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
python如何使用unittest测试接口
Apr 04 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
python 模拟在天空中放风筝的示例代码
Apr 21 Python
如何利用python实现Simhash算法
Jun 28 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中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
Js+XML 操作
2006/09/20 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
Python字符串匹配算法KMP实例
2015/07/18 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
python 动态调用函数实例解析
2019/10/21 Python
Python 实现向word(docx)中输出
2020/02/13 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
python实现五子棋程序
2020/04/24 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
施工班组长岗位职责
2014/01/05 职场文书
领导干部考察材料
2014/02/08 职场文书
质量整改通知单
2015/04/21 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书