python - 如何在Python目录中查找具有特定文件扩展名的所有文件
问题描述
假设我有一个文件夹,其中包含多个文件类型不同的文件:.jpg、.jpeg、.png、.tif、.gif、.docx、.pptx、.xlsx、.mp4、.avi、.mpeg 等.
我应该如何设置一个在指定目录中搜索特定文件类型集的函数?
假设我只想要图像文件(即 jpg、jpeg、png、tif 和 gif)。或者我只想要视频文件(.mp4、.avi、.mpeg)。
我是否必须为每种文件类型编写一个单独的函数?或者我可以有一个搜索图像文件、视频文件等的功能吗?
import os
def enterFilePath():
global filepath
filepath = input("Please enter your file path. ")
enterFilePath()
def enterFileName():
global name
name = input("Name the file. "))
enterFileName()
def data_list():
for elem in os.listdir(filepath):
if elem.endswith('.jpg'):
listItem = elem + '\n'
listName = filepath + (r"\{}List.txt".format(name))
writeFile = open(listName, 'a')
writeFile.write(listItem)
writeFile.close()
if elem.endswith('.jpeg'):
listItem = elem + '\n'
listName = filepath + (r"\{}List.txt".format(name))
writeFile = open(listName, 'a')
writeFile.write(listItem)
writeFile.close()
if elem.endswith('.png'):
listItem = elem + '\n'
listName = filepath + (r"\{}List.txt".format(name))
writeFile = open(listName, 'a')
writeFile.write(listItem)
writeFile.close()
if elem.endswith('.tif'):
listItem = elem + '\n'
listName = filepath + (r"\{}List.txt".format(name))
writeFile = open(listName, 'a')
writeFile.write(listItem)
writeFile.close()
if elem.endswith('.gif'):
listItem = elem + '\n'
listName = filepath + (r"\{}List.txt".format(name))
writeFile = open(listName, 'a')
writeFile.write(listItem)
writeFile.close()
else:
continue
data_list()
解决方案
将所有扩展名收集在一个字典中,然后您可以快速轻松地将它们拉出来。我正在使用os.cwd()
,但您可以将其替换为您的目录。
import os
search = {}
for f in os.listdir(os.getcwd()):
fn, fe = os.path.splitext(f)
try:
search[fe].append(f)
except:
search[fe]=[f,]
# Example on how to search for your extensions and then do something
extensions = ('.png','.jpg')
for ex in extensions:
found = search.get(ex,'')
if found:
print(found)
推荐阅读
- javascript - Javascript函数解决方案
- javascript - 为了能够使用 useRef 钩子选择 SVG 元素,我应该分配什么打字稿类型 d3.select()?
- javascript - 如何在 webdatarocks 中设置静态列?
- sql - SQL Server - 奇怪的索引用法
- microsoft-graph-api - 我们能否将会议模式转换回 MS Graph API 中的点对点通话?
- node.js - 如何读取 EXCEL 共享点文件 (JSON) 中的元数据
- java - 鼠标监听函数栈
- r - CoxBoost 的相对变量重要性
- html - 如果我尝试以优美的方式编写代码,为什么会出现差距?
- java - 如何使用 Gradle 自定义插件添加常见依赖项