Python使用os.listdir和os.walk获取文件路径


Posted in Python onMay 21, 2020

情况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爬虫之抓取糗事百科代码分享
Nov 06 Python
在Django中同时使用多个配置文件的方法
Jul 22 Python
Python中extend和append的区别讲解
Jan 24 Python
对Python3 序列解包详解
Feb 16 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
Python定义函数功能与用法实例详解
Apr 08 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
python字典的遍历3种方法详解
Aug 10 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
keras 权重保存和权重载入方式
May 21 #Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 #Python
Python通过文本和图片生成词云图
May 21 #Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 #Python
Python 实现敏感目录扫描的示例代码
May 21 #Python
基于python检查矩阵计算结果
May 21 #Python
Django 解决由save方法引发的错误
May 21 #Python
You might like
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
php实现计数器方法小结
2015/01/05 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
js 通用javascript函数库整理
2011/08/14 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
js 窗口抖动示例
2013/09/04 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python ip正则式
2009/05/07 Python
跟老齐学Python之开始真正编程
2014/09/12 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python数组过滤实现方法
2015/07/27 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python函数式编程实例详解
2020/01/17 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
在python中修改.properties文件的操作
2020/04/08 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
医科大学毕业生自荐信
2014/02/03 职场文书
出纳试用期自我评价
2015/03/10 职场文书
入党转正介绍人意见
2015/06/03 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS