Python文件处理:生成数据列表文件
Python文件处理:生成数据列表文件
本教程将逐句解释以下Python代码,该代码旨在读取指定目录下的文件列表,并将其保存到新的文件中。pythonimport os
data_dir = 'data/hmdb_data_demo/'
train_data = os.listdir(data_dir + 'train')train_data = [x for x in train_data if not x.startswith('.')]print(len(train_data))
test_data = os.listdir(data_dir + 'test')test_data = [x for x in test_data if not x.startswith('.')]print(len(test_data))
val_data = os.listdir(data_dir + 'val')val_data = [x for x in val_data if not x.startswith('.')]print(len(val_data))
f = open('data/hmdb_data_demo/train.list', 'w')for line in train_data: f.write(data_dir + 'train/' + line + ' ')f.close()f = open('data/hmdb_data_demo/test.list', 'w')for line in test_data: f.write(data_dir + 'test/' + line + ' ')f.close()f = open('data/hmdb_data_demo/val.list', 'w')for line in val_data: f.write(data_dir + 'val/' + line + ' ')f.close()
代码解释
-
import os: 导入os模块,该模块提供与操作系统交互的函数。 -
data_dir = 'data/hmdb_data_demo/': 定义一个变量data_dir,存储数据目录的路径。 -
train_data = os.listdir(data_dir + 'train'): 使用os.listdir()函数获取'data/hmdb_data_demo/train'目录下的所有文件和文件夹名称,并将结果存储在列表train_data中。 -
train_data = [x for x in train_data if not x.startswith('.')]: 使用列表推导式过滤train_data列表,移除以'.'开头的文件或文件夹(通常是隐藏文件)。 -
print(len(train_data)): 打印train_data列表的长度,即训练数据的数量。 -
对
test_data和val_data重复步骤3-5,分别获取测试数据和验证数据的列表。 -
f = open('data/hmdb_data_demo/train.list', 'w'): 打开一个名为'train.list'的文件,以写入模式('w')打开,文件路径为'data/hmdb_data_demo/train.list'。 -
for line in train_data:: 遍历train_data列表中的每个元素。 -
f.write(data_dir + 'train/' + line + ' '): 将数据目录路径、'train/'和当前元素的值拼接成一个字符串,并将其写入文件中。' '用于换行,确保每个路径占一行。 -
f.close(): 关闭文件。 -
对
test_data和val_data重复步骤7-10,分别将测试数据和验证数据的路径写入'test.list'和'val.list'文件。
代码功能
这段代码的主要功能是读取指定目录下的文件列表,过滤掉隐藏文件,并将文件路径保存到新的文件中。这种操作在数据预处理中很常见,可以方便后续对数据的读取和使用。
原文地址: https://www.cveoy.top/t/topic/mJF 著作权归作者所有。请勿转载和采集!