当前位置: 首页 > news >正文

python获取文件夹下所有图片目录

 🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 

🥰 博客首页:knighthood2001

😗 欢迎点赞👍评论🗨️

❤️ 热爱python,期待与大家一同进步成长!!❤️

目录

需求

法一  法二  法三  法四 

结尾


需求:

 

        熊二表情包为桌面一文件夹,我们需要获取其目录下所有图片的绝对路径,最终将所有绝对路径存储在列表中。

(熊二表情包可爱吧,获取方式如下)

获取全网低质量图片数据集的方法(含代码)https://blog.csdn.net/knighthood2001/article/details/127018897?spm=1001.2014.3001.5502

copy里面的代码,然后输入相应的数量(笔者输入了3),回车,输入熊二表情包


讲解分割线

        因为涉及到文件路径操作,笔者首先想到了os模块,并给出了四种实现方式(大同小异)。

首先进行模块导入 

import os

文件夹路径如下 

# TODO 图片所在文件夹的绝对路径
file = r'C:\Users\knighthood\OneDrive\桌面\熊二表情包'

法一:

def getfiles():
    path_list = []
    filenames = os.listdir(file)
    print(filenames)
    for filename in filenames:
        a = os.path.join(file, filename)
        print(a)
        path_list.append(a)
    print(path_list)
    return path_list

getfiles()

​ 

​ 

思路:

        os.listdir(file)返回一个包含目录中文件名称的列表。如上述的熊二表情包,接下来遍历列表,通过os.path.join()拼接成绝对路径,最终存入列表中。

注:

        "\"存入列表中就变成了"\\",笔者猜测是防止后续可能出现转义。(如下错误的情况)

法二:

def getfiles1():
    filenames = os.listdir(file)
    for i in range(len(filenames)):
        filenames[i] = r"{}\{}".format(file, filenames[i])
        print(filenames[i])
    print(filenames)
    return filenames
    
getfiles1()

 这里主要是将filenames列表中的只包含文件名及后缀的内容替换成了绝对路径。

法三:

def get_files():
    path_list = []
    for filepath, dirnames, filenames in os.walk(file):
        for filename in filenames:
            a = os.path.join(filepath, filename)
            print(a)
            path_list.append(a)
    print(path_list)
    return path_list

get_files()

这里主要是使用了os.walk()函数,对这一块,笔者不是很熟。

法四:

def get_files1():
    for filepath, dirnames, filenames in os.walk(file):
        for i in range(len(filenames)):
            filenames[i] = r"{}\{}".format(file, filenames[i])
            print(filenames[i])
        print(filenames)
        return filenames

get_files1()

这里主要采用os.walk()并采用法二的操作实现的。


结尾

        以上四种,笔者都尝试过且成功的(笔者一般使用法二),对于一些人发的那些只用一个函数就返回的,笔者试过其中几个,不过不是很正确,其返回的是代码.py文件的绝对路径,和图片路径就没啥太大的关系了。

        在python中,笔者认为两块内容很重要,一块是os模块(有些内容挺复杂的),另一部分是正则(基础内容多看看就会了,但是真的去写相关的内容,发现还是有点吃力,比如自己写一个提取网址的

相关文章:

  • 【MySQL】慢SQL搜集工具、SQL脱敏聚合处理
  • 手机号发验证码实现用户注册登录
  • 程序员缺乏经验的 7 种表现,你中了几个?
  • Spring框架中的核心技术之AOP
  • 用户体验与响应式字体二三事|rem单位与flexible.js、rpx单位与css媒体查询
  • 408 | 【2009年】计算机统考真题 自用回顾知识点整理
  • MyMusic 重点实现
  • 云计算敏捷团队的 10 个最佳实践工具
  • 阿里面试官终于把多年总结的Java八股文PDF版分享出来了,帮我金九银十拿下4个offer
  • java毕业设计超市管理系统Mybatis+系统+数据库+调试部署
  • 计算机网络 第 1 章 计算机网络概述
  • 如何转换图片格式?教你三招一键轻松转换图片格式
  • 【从小白到大白04】Linux基本权限
  • Unity_飞机大战_防止单例随场景销毁和跨场景两个物体脚本问题_自动加载物体挂载脚本的两种方式
  • taro 兼容支付宝小程序和微信小程序<七>-- 上传图片及图片转base64
  • 78. Subsets
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • angular学习第一篇-----环境搭建
  • css布局,左右固定中间自适应实现
  • CSS实用技巧干货
  • Fundebug计费标准解释:事件数是如何定义的?
  • JavaScript学习总结——原型
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Odoo domain写法及运用
  • Rancher-k8s加速安装文档
  • React-flux杂记
  • Ruby 2.x 源代码分析:扩展 概述
  • Spring-boot 启动时碰到的错误
  • Vue.js源码(2):初探List Rendering
  • vue-router 实现分析
  • 好的网址,关于.net 4.0 ,vs 2010
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 力扣(LeetCode)357
  • 那些被忽略的 JavaScript 数组方法细节
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 带你开发类似Pokemon Go的AR游戏
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #define
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)bark-ml
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (java)关于Thread的挂起和恢复
  • (pojstep1.3.1)1017(构造法模拟)
  • (多级缓存)缓存同步
  • (理论篇)httpmoudle和httphandler一览
  • (力扣题库)跳跃游戏II(c++)
  • (一)Dubbo快速入门、介绍、使用
  • (转)http-server应用
  • (转)ORM
  • (转)母版页和相对路径
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET Framework与.NET Framework SDK有什么不同?