🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥰 博客首页:knighthood2001 😗 欢迎点赞👍评论🗨️ ❤️ 热爱python,期待与大家一同进步成长!!❤️ |
目录
需求:
熊二表情包为桌面一文件夹,我们需要获取其目录下所有图片的绝对路径,最终将所有绝对路径存储在列表中。
(熊二表情包可爱吧,获取方式如下)
copy里面的代码,然后输入相应的数量(笔者输入了3),回车,输入熊二表情包。
讲解分割线
因为涉及到文件路径操作,笔者首先想到了os模块,并给出了四种实现方式(大同小异)。
首先进行模块导入
import os
文件夹路径如下
- # TODO 图片所在文件夹的绝对路径
- file = r'C:\Users\knighthood\OneDrive\桌面\熊二表情包'
- def getfiles(input_path):
- path_list = []
- filenames = os.listdir(input_path)
- print(filenames)
- for filename in filenames:
- a = os.path.join(input_path, filename)
- print(a)
- path_list.append(a)
- print(path_list)
- return path_list
思路:
os.listdir(input_path)返回一个包含目录中文件名称的列表。如上述的熊二表情包,接下来遍历列表,通过os.path.join()拼接成绝对路径,最终存入列表中。
注:
"\"存入列表中就变成了"\\",笔者猜测是防止后续可能出现转义。(如下错误的情况)
- def getfiles1(input_path):
- filenames = os.listdir(input_path)
- for i in range(len(filenames)):
- filenames[i] = r"{}\{}".format(input_path, filenames[i])
- print(filenames[i])
- print(filenames)
- return filenames
-
- getfiles1(input_path)
这里主要是将filenames列表中的只包含文件名及后缀的内容替换成了绝对路径。
- def get_files(input_path):
- path_list = []
- for filepath, dirnames, filenames in os.walk(input_path):
- for filename in filenames:
- a = os.path.join(filepath, filename)
- print(a)
- path_list.append(a)
- print(path_list)
- return path_list
-
- get_files(input_path)
这里主要是使用了os.walk()函数,对这一块,笔者不是很熟。
- def get_files1(input_path):
- for filepath, dirnames, filenames in os.walk(input_path):
- for i in range(len(filenames)):
- filenames[i] = r"{}\{}".format(input_path, filenames[i])
- print(filenames[i])
- print(filenames)
- return filenames
-
- get_files1(input_path)
这里主要采用os.walk()并采用法二的操作实现的。
以上四种,笔者都尝试过且成功的(笔者一般使用法二),对于一些人发的那些只用一个函数就返回的,笔者试过其中几个,不过不是很正确,其返回的是代码.py文件的绝对路径,和图片路径就没啥太大的关系了。
在python中,笔者认为两块内容很重要,一块是os模块(有些内容挺复杂的),另一部分是正则(基础内容多看看就会了,但是真的去写相关的内容,发现还是有点吃力,比如自己写一个提取网址的)