栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python--利用os模块读取指定目录下所有文件名

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python--利用os模块读取指定目录下所有文件名

文章目录
    • 源码
    • 思路
    • 过程
      • 1.直接引入os模块即可
      • 2.既然我们使用到了os模块,就看看它所带的内置方法哪些可以读取文件名
      • 3.考虑递归思想


源码
import os

def scanfile(path):
    filelist = os.listdir(path)
    for filename in filelist:
        filepath = os.path.join(path, filename)
        if os.path.isdir(filepath):
            scanfile(filepath)
        print(filepath)

allfile = scanfile('自定义指定路径')
思路

1.使用第三方模块
2.怎么样读取到文件的名字
3.要求指定目录下所有文件的名字,若遇到文件夹则需要进一步读取

过程 1.直接引入os模块即可

os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。

import os

2.既然我们使用到了os模块,就看看它所带的内置方法哪些可以读取文件名

首先找到了os.listdir可以读取指定路径下所有文件和文件夹的名字
比如我创建了一个文件夹,里面包含了1.txt,文件夹2,3.doc

使用os.listdir来试着读取一下
定义一个函数,就叫它scanfile吧,扫描文件的意思
需要传入的参数就是我们的文件路径

import os

def scanfile(path):
    filelist = os.listdir(path)
    print(filelist)

allfile = scanfile('D:Desktop\test')

得出结果

ok,到这里我们读取的功能算是完成一半了
不过,刚才提到文件夹的名字是2
而我们想要的是读取指定路径下所有文件的名字!

所以代码还不够完善
那么,要怎么进行下去呢?

3.考虑递归思想

既然我们要打印的是文件名字,那么遇到文件夹就应该再“扫描”一次
也就是再一次使用scanfile函数去执行这个文件夹路径
想法有了
首先,先确认当前读到的是文件还是文件夹
从刚才的输出结果可以看出返回了一个列表

['1.txt', '2', '3.doc']

那么就可以for循环遍历一下

for filename in filelist:

将文件和路径进行拼接

filepath = os.path.join(path, filename)

试着打印输出一下,看到是完整路径

接着使用os.path.isdir()来确认当前路径是否文件夹
如果是就再一次使用scanfile,
不是的话就直接输出文件名(也就是filename)

if os.path.isdir(filepath):
	scanfile(filepath)
print(filepath)

这次代码输出结果

验证

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017748.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号