以下是一个示例代码,用于按行位置划分数据集并保存在不同的文件中:
import os
def split_dataset(input_file, output_dir, num_files):
with open(input_file, 'r') as file:
lines = file.readlines()
total_lines = len(lines)
lines_per_file = total_lines // num_files
# 创建输出文件夹
os.makedirs(output_dir, exist_ok=True)
for i in range(num_files):
start = i * lines_per_file
end = start + lines_per_file if i < num_files - 1 else None
output_file = os.path.join(output_dir, f'dataset_{i+1}.txt')
with open(output_file, 'w') as file:
file.writelines(lines[start:end])
print(f"数据集已成功划分为 {num_files} 个文件,并保存在 {output_dir} 文件夹中。")
# 示例用法
input_file = 'data.txt'
output_dir = 'output'
num_files = 5
split_dataset(input_file, output_dir, num_files)
在上述示例代码中,我们首先打开输入文件,并将其读取到一个列表中。然后,我们计算每个输出文件应该包含的行数,并创建输出文件夹。
接下来,我们使用一个循环来迭代每个输出文件。在每次迭代中,我们计算起始行和结束行的索引,并将相应的行写入输出文件中。
最后,我们打印一条消息,表示数据集已成功划分为指定数量的文件,并保存在指定的输出文件夹中。
请注意,上述示例假设输入文件是一个文本文件,其中每行包含一个数据样本。如果你的数据集具有不同的格式,请根据需要进行修改。