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连接mysql数据库示例(做增删改操作)
Dec 31 Python
简单的Python的curses库使用教程
Apr 11 Python
Python实现二叉搜索树
Feb 03 Python
深入理解python try异常处理机制
Jun 01 Python
Python语言生成水仙花数代码示例
Dec 18 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
PyQt5组件读取参数的实例
Jun 25 Python
python 画函数曲线示例
Dec 04 Python
对python中arange()和linspace()的区别说明
May 03 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
什么是Python变量作用域
Jun 03 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 checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
python自动化报告的输出用例详解
2018/05/30 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
Django视图类型总结
2021/02/17 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
表彰先进的通报
2014/01/31 职场文书
行政部岗位职责范本
2014/03/13 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
出国留学担保书
2014/05/20 职场文书
西柏坡导游词
2015/02/05 职场文书