1. 题目要求
要对输出的 1080p_together.txt
, 2k_together.txt
, 和 4k_together.txt
里的文件内容随机任意抽取其中数据的一半
,分别保存为新的txt
文档,文件名为原文件名加上 _half.txt 后缀。
2.代码实现
def random_half_file(file_path):
with open(file_path, 'r') as f:
lines = f.readlines()
random.shuffle(lines)
half_lines = lines[:len(lines) // 2]
new_file_path = os.path.splitext(file_path)[0] + '_half.txt'
with open(new_file_path, 'w') as f:
f.writelines(half_lines)
return new_file_path
# 抽取1080p文件内容的一半
new_file_path_1080p = random_half_file('1080p_together.txt')
print(f"新1080p文件路径: {new_file_path_1080p}")
# 抽取2k文件内容的一半
new_file_path_2k = random_half_file('2k_together.txt')
print(f"新2k文件路径: {new_file_path_2k}")
# 抽取4k文件内容的一半
new_file_path_4k = random_half_file('4k_together.txt')
print(f"新4k文件路径: {new_file_path_4k}")
3. 讲解
3.1 随机抽取文件内容的一半
'''
这段代码是用来随机抽取文件内容的一半。
random.shuffle(lines) 会随机打乱lines列表的顺序。
half_lines = lines[:len(lines) // 2] 这行代码会取打乱后的lines列表的前一半元素赋值给half_lines。
这里,len(lines) // 2 是用来计算列表长度的一半(向下取整)。
'''
3.2 随机打乱一个列表的顺序
"""
shuffle 是 Python 标准库 random 模块的一个方法,用于随机打乱一个列表的顺序。
"""
import random
# 一个列表示例
my_list = [1, 2, 3, 4, 5]
# 使用random.shuffle()来打乱列表顺序
random.shuffle(my_list)
# my_list 现在是 [3, 2, 1, 5, 4](顺序可能是不同的)