import os

def split_txt_file(file_path, num_parts=5):
    # 检查文件是否存在
    if not os.path.exists(file_path):
        print(f"错误：找不到文件 {file_path}")
        return

    # 读取所有行
    print("正在读取文件...")
    with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()

    total_lines = len(lines)
    lines_per_part = total_lines // num_parts
    
    # 获取文件名和目录
    dir_name = os.path.dirname(file_path)
    base_name = os.path.basename(file_path).replace(".txt", "")

    print(f"总行数: {total_lines}，预计每份约 {lines_per_part} 行。")

    for i in range(num_parts):
        start_index = i * lines_per_part
        # 最后一份包含剩余的所有行
        if i == num_parts - 1:
            part_content = lines[start_index:]
        else:
            part_content = lines[start_index : start_index + lines_per_part]

        output_filename = os.path.join(dir_name, f"{base_name}_part{i+1}.txt")
        
        with open(output_filename, 'w', encoding='utf-8') as f_out:
            f_out.writelines(part_content)
        
        print(f"已生成: {output_filename}")

if __name__ == "__main__":
    target_path = r"C:\Users\Administrator\Desktop\data\英汉大词典_output.txt"
    split_txt_file(target_path)
    print("\n切分完成！你可以开始依次上传这些 part 文件了。")