如何将文本文件中的数组字符串转换为可对比的Python列表?
读取文本文件中数组字符串转换为标准列表的解决方法
方法1:使用ast.literal_eval()(推荐)
这是最安全可靠的方案,它专门用于解析Python字面量,不会执行任意代码,适配绝大多数合法的列表格式。
示例代码:
import ast # 读取文件内容 with open('your_array_file.txt', 'r') as f: file_content = f.read().strip() # 转换为标准列表 target_list = ast.literal_eval(file_content) print(target_list) # 输出: ['Name1', 'Name2', 'Name3', ..., 'NameN']
方法2:使用json.loads()
JSON格式要求字符串用双引号,因此需要先将文本中的单引号替换为双引号,再用JSON模块解析。
示例代码:
import json with open('your_array_file.txt', 'r') as f: file_content = f.read().strip() # 替换单引号为双引号,适配JSON格式要求 json_content = file_content.replace("'", '"') target_list = json.loads(json_content) print(target_list)
注意:如果数组元素本身包含双引号,该方法会失效,此时优先选择方法1。
方法3:手动字符串处理(不推荐)
若不想引入外部模块,可手动截取、分割字符串,但这种方式容错性极低,仅适用于元素无特殊字符(逗号、空格等)的简单场景。
示例代码:
with open('your_array_file.txt', 'r') as f: file_content = f.read().strip() # 去除首尾的[],分割元素后清理引号和空格 raw_items = file_content[1:-1].split(',') target_list = [item.strip().strip("'") for item in raw_items] print(target_list)
内容的提问来源于stack exchange,提问作者Ahmed Arafat
相关产品推荐
相关产品推荐

