Python如何将.txt文件转换为.pkl文件?附无需转换直接读取方法
TXT转PKL及直接读取结构化内容方案
方法1:转换为c.pkl文件读取
你可以通过Python的ast模块安全解析txt中的Python字面量,再通过pickle序列化保存为pkl文件,步骤代码如下:
import pickle import ast # 读取txt原文件 with open("c.txt", "r", encoding="utf-8") as f: file_content = f.read() # 提取赋值语句右侧的列表内容,若txt中无`c.txt_file = `前缀可跳过此步 data_str = file_content.split("=", 1)[1].strip() # 安全转换为Python结构化对象 structured_data = ast.literal_eval(data_str) # 保存为pkl文件 with open("c.pkl", "wb") as f: pickle.dump(structured_data, f)
读取验证代码和你预期的完全一致:
import pickle data = pickle.load(open("c.pkl", "rb")) data
执行后输出即为你需要的原结构化列表。
方法2:无需转换直接读取c.txt
不需要转pkl也可以直接拿到完全一致的结构化对象,直接用ast解析即可,代码更简洁:
import ast with open("c.txt", "r", encoding="utf-8") as f: file_content = f.read() # 无赋值前缀时直接传file_content即可 data_str = file_content.split("=", 1)[1].strip() data = ast.literal_eval(data_str) # 直接使用data即可,和读取pkl得到的对象完全一致 data
注意:这里使用ast.literal_eval而非原生eval,只会解析合法的Python基础数据结构,不会执行任意代码,安全性更高,适配你当前的场景。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

