Python如何从txt文件读取列表并直接使用变量a调用
实现方法
方法1:直接执行(仅适用于可信来源的文件)
如果你的文件都是自行生成、来源完全可靠,可以直接用exec()执行读取到的文件内容,执行完成后即可直接调用变量a:
# 建议用with上下文管理器自动处理文件关闭,避免资源泄漏 with open("filename.txt", "r") as my_file: content = my_file.read() exec(content) # 此时可直接使用变量a print(a) # 输出结果:[1, 2, 3]
注意:该方法存在安全风险,如果文件被植入恶意代码,执行后会直接运行恶意逻辑,请勿用于来源不明的文件。
方法2:安全解析(推荐,适配所有场景)
如果文件来源不可信,使用ast.literal_eval仅解析Python基础字面量(列表、字典、字符串、数字等),不会执行任意代码,安全性更高:
import ast with open("filename.txt", "r") as my_file: # 读取行内容并去除首尾空白 line = my_file.readline().strip() # 按第一个等号分割,提取变量名和右侧的列表内容 var_name, value_str = line.split("=", 1) a = ast.literal_eval(value_str.strip()) print(a) # 输出结果:[1, 2, 3]
多文件批量处理适配
如果你需要处理多个存储不同列表的文件,可以批量解析后存入字典统一调用:
import ast # 你的文件列表 file_list = ["filename.txt", "filename2.txt", "filename3.txt"] var_store = {} for file_path in file_list: with open(file_path, "r") as f: line = f.readline().strip() var_name, value_str = line.split("=", 1) var_store[var_name.strip()] = ast.literal_eval(value_str.strip()) # 调用示例:获取变量a对应的列表 print(var_store["a"])
内容的提问来源于stack exchange,提问作者basem
相关产品推荐
相关产品推荐

