You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将包含多组tensor的txt文件中每个tensor分别写入独立txt文件

实现方法

你可以用Python快速实现该需求,以下提供两种适用不同场景的方案:


方案1:直接文本分割(保留原格式,无需额外依赖)

如果仅需要拆分后保留原始文本格式,不需要对tensor做运算,直接按特征字符串分割即可,速度最快且不会修改原始内容:

# 配置参数
input_file_path = "替换为你的原始文件路径.txt"
# 数字对应英文文件名映射,有更多tensor直接扩展即可
num_to_word = {1: "one", 2: "two", 3: "three", 4: "four", 5: "five"}

# 读取原始文件全部内容
with open(input_file_path, 'r', encoding='utf-8') as f:
    content = f.read()

# 按tensor块的特征前缀分割,跳过第一个空元素
tensor_blocks = content.split("[tensor(")[1:]

for idx, block in enumerate(tensor_blocks, start=1):
    # 补回被分割掉的前缀
    full_block = "[tensor(" + block
    output_name = f"{num_to_word[idx]}.txt"
    with open(output_name, 'w', encoding='utf-8') as f:
        f.write(full_block.rstrip('\n'))
    print(f"已生成文件:{output_name}")

该方案优势:

  • 无需安装PyTorch等第三方依赖
  • 完全保留原始缩进、device信息、数值格式
  • 大文件处理速度快

方案2:解析为PyTorch对象存储(适合后续运算场景)

如果后续需要直接加载拆分后的tensor做计算,可以调整为解析后存储,既可以保留原始文本格式,也可以存为可直接加载的.pt二进制格式:

import torch

# 配置参数
input_file_path = "替换为你的原始文件路径.txt"
num_to_word = {1: "one", 2: "two", 3: "three", 4: "four", 5: "five"}

with open(input_file_path, 'r', encoding='utf-8') as f:
    lines = f.readlines()

current_block = []
file_idx = 1

for line in lines:
    stripped = line.strip()
    # 遇到新的tensor块开头,先写入上一个块
    if stripped.startswith("[tensor(") and current_block:
        # 保留原始文本格式写入
        with open(f"{num_to_word[file_idx]}.txt", 'w', encoding='utf-8') as f:
            f.write(''.join(current_block))
        # 如果要存为可直接torch.load的二进制格式,替换上面的写入逻辑为:
        # parsed_tensor = eval(''.join(current_block).replace('tensor(', 'torch.tensor('))[0]
        # torch.save(parsed_tensor, f"{num_to_word[file_idx]}.pt")
        file_idx += 1
        current_block = []
    current_block.append(line)

# 写入最后一个tensor块
if current_block:
    with open(f"{num_to_word[file_idx]}.txt", 'w', encoding='utf-8') as f:
        f.write(''.join(current_block))

注意:仅在你信任原始文件内容的前提下使用eval方法解析tensor对象。


补充说明

如果不需要英文命名,直接把输出文件名改为f"{idx}.txt"即可,无需维护数字转英文的映射表。

内容的提问来源于stack exchange,提问作者Soodep Dhakal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:15:03