下面是对 "对python遍历文件夹中的所有jpg文件的实例详解" 的完整攻略。
总体思路
本篇攻略的主要目标是利用 Python 实现遍历指定文件夹中所有 jpg 格式图片文件的功能,具体实现过程如下:
- 导入必要的模块
- 定义遍历函数
- 主程序代码,调用遍历函数
导入模块
首先,代码中需要导入 os
和 glob
两个模块。
import os
import glob
定义遍历函数
借助 os.path
模块等工具,可以轻松实现对指定文件夹的遍历。 下面是一个基于递归实现的遍历所有 jpg 文件的函数。
def traverse_jpg_files(path):
"""
遍历指定路径下所有 jpg 文件
"""
files = []
for file_name in glob.glob(os.path.join(path, '*.jpg')):
files.append(file_name)
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.jpg'):
files.append(os.path.join(dirpath, filename))
return files
该函数接收一个参数 path
,表示指定文件夹绝对路径,返回一个遍历得到的所有 jpg 文件路径名的列表 files
。
以上代码中,依次找出指定路径 path
下以及其子目录下的所有 .jpg 结尾的文件,并返回这个文件列表。其中:
glob
模块根据路径匹配查找文件os.walk
方法继续遍历指定路径下子目录,查找 .jpg 文件,并加入列表
主程序代码,调用遍历函数
下面的代码主要调用以上的函数 traverse_jpg_files
。
if __name__ == '__main__':
files = traverse_jpg_files('/Users/your_username/Downloads/')# file path where the jpg files are located
for file in files:
print(file)
程序调用遍历函数,输出所有目录内的 jpg 文件路径。
示例说明1
假设有一个名为 image
的文件夹,目录结构如下所示:
➜ image ls
1.jpg 2.jpg readme.md
subdir1/
3.jpg 4.jpg
subdir2/
5.jpg 6.jpg
我们对 image
文件夹进行遍历查找 jpg 文件并输出:
import os
import glob
def traverse_jpg_files(path):
"""
遍历指定路径下所有 jpg 文件
"""
files = []
for file_name in glob.glob(os.path.join(path, '*.jpg')):
files.append(file_name)
print(f'匹配当前目录下文件:{files}')
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.jpg'):
files.append(os.path.join(dirpath, filename))
print(f'匹配子目录下所有 jpg 文件: {files}')
return files
if __name__ == "__main__":
traverse_jpg_files('./image')
对于这个示例,会输出如下结果:
匹配当前目录下文件:['./image/1.jpg', './image/2.jpg']
匹配子目录下所有 jpg 文件: ['./image/1.jpg', './image/2.jpg', './image/subdir2/5.jpg', './image/subdir2/6.jpg', './image/subdir1/3.jpg', './image/subdir1/4.jpg']
示例说明2
下面演示一个实际的例子,利用 pandas 库遍历文件夹中的所有 csv 文件并将其合并。
假设有一个名为 financial_data
的文件夹,内有若干个 csv 文件,我们希望将其全部读入后合并成一个大的数据框:
import os
import pandas as pd
def traverse_csv_files(path):
"""
遍历指定路径下所有 csv 文件
"""
files = []
for file_name in glob.glob(os.path.join(path, '*.csv')):
files.append(file_name)
print(f'匹配当前目录下文件:{files}')
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.csv'):
files.append(os.path.join(dirpath, filename))
print(f'匹配子目录下所有 csv 文件: {files}')
return files
if __name__ == "__main__":
#读取csv文件,合并所有的csv文件到一个数据框。
csv_file_path = './financial_data'
csv_files = traverse_csv_files(csv_file_path)
data = pd.concat([pd.read_csv(file) for file in csv_files], ignore_index = True)
print(data)
在执行过程中输出如下结果:
匹配当前目录下文件:['./financial_data/data_1.csv', './financial_data/data_2.csv']
匹配子目录下所有 csv 文件: ['./financial_data/data_1.csv', './financial_data/data_2.csv', './financial_data/subdir2/data_4.csv', './financial_data/subdir2/data_5.csv', './financial_data/subdir1/data_3.csv']
field_1 field_2 field_3
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
以上是对 "对python遍历文件夹中的所有jpg文件的实例详解" 的完整攻略,希望能帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python遍历文件夹中的所有jpg文件的实例详解 - Python技术站