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 Django模板的使用方法(图文)
Nov 04 Python
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
python实现文本文件合并
Dec 29 Python
python验证码识别的实例详解
Sep 09 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
使用python实现链表操作
Jan 26 Python
python如何去除字符串中不想要的字符
Jul 05 Python
python-str,list,set间的转换实例
Jun 27 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
python 变量初始化空列表的例子
Nov 28 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
python中xlutils库用法浅析
Dec 29 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生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Python开发编码规范
2006/09/08 Python
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
python re模块常见用法例举
2021/03/01 Python
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
创联软件面试题笔试题
2012/10/07 面试题
小学三好学生事迹材料
2014/08/15 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS