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()

代码解释

  1. import os: 导入os模块,该模块提供与操作系统交互的函数。

  2. data_dir = 'data/hmdb_data_demo/': 定义一个变量data_dir,存储数据目录的路径。

  3. train_data = os.listdir(data_dir + 'train'): 使用os.listdir()函数获取'data/hmdb_data_demo/train'目录下的所有文件和文件夹名称,并将结果存储在列表train_data中。

  4. train_data = [x for x in train_data if not x.startswith('.')]: 使用列表推导式过滤train_data列表,移除以'.'开头的文件或文件夹(通常是隐藏文件)。

  5. print(len(train_data)): 打印train_data列表的长度,即训练数据的数量。

  6. test_dataval_data重复步骤3-5,分别获取测试数据和验证数据的列表。

  7. f = open('data/hmdb_data_demo/train.list', 'w'): 打开一个名为'train.list'的文件,以写入模式('w')打开,文件路径为'data/hmdb_data_demo/train.list'。

  8. for line in train_data:: 遍历train_data列表中的每个元素。

  9. f.write(data_dir + 'train/' + line + ' '): 将数据目录路径、'train/'和当前元素的值拼接成一个字符串,并将其写入文件中。' '用于换行,确保每个路径占一行。

  10. f.close(): 关闭文件。

  11. test_dataval_data重复步骤7-10,分别将测试数据和验证数据的路径写入'test.list'和'val.list'文件。

代码功能

这段代码的主要功能是读取指定目录下的文件列表,过滤掉隐藏文件,并将文件路径保存到新的文件中。这种操作在数据预处理中很常见,可以方便后续对数据的读取和使用。

Python文件处理:生成数据列表文件

原文地址: https://www.cveoy.top/t/topic/mJF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录