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使用PyV8执行javascript代码示例分享
Dec 04 Python
Python 忽略warning的输出方法
Oct 18 Python
Python3几个常见问题的处理方法
Feb 26 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
用Python解数独的方法示例
Oct 24 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
php自定文件保存session的方法
2014/12/10 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
python 输出上个月的月末日期实例
2018/04/11 Python
Python实现随机漫步功能
2018/07/09 Python
如何基于python实现归一化处理
2020/01/20 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
python 决策树算法的实现
2020/10/09 Python
python 对xml解析的示例
2021/02/27 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
某公司面试题
2012/03/05 面试题
营销人才自我鉴定范文
2013/12/25 职场文书
医学专业自荐信
2014/06/14 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS