如何从txt文件读取Python列表格式内容并转换为Python列表对象
TXT存储的Python列表字符串读取还原方案
核心思路
直接复制大体积列表字符串会触发IDE/解释器输入缓冲区过载导致无响应,采用流式读取文件+字面量安全解析的方式实现转换,全程无数据截断风险。
实现代码
基础版(无额外异常处理)
import ast # 替换为你的txt文件实际路径 with open("permission_list.txt", "r", encoding="utf-8") as f: list_str = f.read() # 解析为Python原生列表 target_list = ast.literal_eval(list_str) # 结果验证 print(f"成功还原列表,元素总数:{len(target_list)}") # 输出前3个元素确认格式正确性 print(target_list[:3])
兼容版(含常见异常处理)
import ast file_path = "permission_list.txt" # 替换为实际文件路径 target_list = [] try: # 优先尝试utf-8编码读取 with open(file_path, "r", encoding="utf-8") as f: list_str = f.read().strip() target_list = ast.literal_eval(list_str) except FileNotFoundError: print("错误:未找到指定路径的文件,请核对路径配置") except SyntaxError: print("错误:文件内容不符合Python列表字面量格式,请检查是否存在多余的首尾字符、格式损坏") except UnicodeDecodeError: # 编码不兼容时尝试GBK编码读取 with open(file_path, "r", encoding="gbk") as f: list_str = f.read().strip() target_list = ast.literal_eval(list_str)
注意事项
若解析失败请优先检查txt文件内容:确认首尾没有多余的日志字符、换行符、空格,仅保留完整的
[元素1, 元素2...]结构即可正常解析。ast.literal_eval仅会解析Python字面量结构,不会执行任意代码,相比eval安全性更高,适合处理未知来源的序列化字面量内容。
内容的提问来源于stack exchange,提问作者Arctic97
相关产品推荐
相关产品推荐

