码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python获取文件夹下所有图片目录


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

    🥰 博客首页:knighthood2001

    😗 欢迎点赞👍评论🗨️

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

    目录

    需求

    法一  法二  法三  法四 

    结尾


    需求:

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

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

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

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


    讲解分割线

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

    首先进行模块导入 

    import os

    文件夹路径如下 

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

    法一:

    1. def getfiles(input_path):
    2. path_list = []
    3. filenames = os.listdir(input_path)
    4. print(filenames)
    5. for filename in filenames:
    6. a = os.path.join(input_path, filename)
    7. print(a)
    8. path_list.append(a)
    9. print(path_list)
    10. return path_list

    ​ 

    ​ 

    思路:

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

    注:

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

    法二:

    1. def getfiles1(input_path):
    2. filenames = os.listdir(input_path)
    3. for i in range(len(filenames)):
    4. filenames[i] = r"{}\{}".format(input_path, filenames[i])
    5. print(filenames[i])
    6. print(filenames)
    7. return filenames
    8. getfiles1(input_path)

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

    法三:

    1. def get_files(input_path):
    2. path_list = []
    3. for filepath, dirnames, filenames in os.walk(input_path):
    4. for filename in filenames:
    5. a = os.path.join(filepath, filename)
    6. print(a)
    7. path_list.append(a)
    8. print(path_list)
    9. return path_list
    10. get_files(input_path)

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

    法四:

    1. def get_files1(input_path):
    2. for filepath, dirnames, filenames in os.walk(input_path):
    3. for i in range(len(filenames)):
    4. filenames[i] = r"{}\{}".format(input_path, filenames[i])
    5. print(filenames[i])
    6. print(filenames)
    7. return filenames
    8. get_files1(input_path)

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


    结尾

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

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

  • 相关阅读:
    【Java 学习】方法 和 一些编程案例
    MultipartFile上传文件报文件不存在的几种情况
    Vue07/Vue 具名插槽 及 作用域插槽( 带数据插槽 ) 作用介绍和说明
    一站式在线订货功能详解,B2B电子商务交易平台高效解决企业订单管理痛点
    2023全新付费进群系统源码 带定位完整版 附教程
    北京化工大学数据结构2022/11/24作业 题解
    基于微调技术打造自己的私有LLM大模型
    『互联网架构』kafka集群搭建和使用
    Go 将在下个版本支持新型排序算法:pdqsort
    6-10java8中关于接口的新特性
  • 原文地址:https://blog.csdn.net/knighthood2001/article/details/127165829
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号