python获取文件夹下所有图片目录
在python中,笔者认为两块内容很重要,一块是os模块(有些内容挺复杂的),另一部分是正则(基础内容多看看就会了,但是真的去写相关的内容,发现还是有点吃力,比如自己写一个提取网址的)
🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥰 博客首页: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模块(有些内容挺复杂的),另一部分是正则(基础内容多看看就会了,但是真的去写相关的内容,发现还是有点吃力,比如自己写一个提取网址的)
更多推荐
所有评论(0)