文章目录
- 前言
- 一、万能的txt和eval大法
- 二、具体代码和使用方法
- 总结
前言
使用Python,我们偶尔需要将一些变量保存到本地,并被其它代码读取作为参数,那么怎么办呢?
一、万能的txt和eval大法
这里教大家一个简单的方法,很轻松就可以搞定。对,就是保存为万能的txt文件,再对其进行读取即可。
但是,Python变量保存到本地就失去了变量的特性,读取到内存也只能当作普通的str字符串。那怎么办呢?这里就要用到eval大法!
下面已将代码封装成函数,方便大家调用。
二、具体代码和使用方法
import os
def list2txt(filepath,lst):_list = lstf = open(filepath,"w")f.write(str(_list))f.close()def txt2list(filepath):with open(filepath, "r+") as f:list_txt = f.read()_list = eval(list_txt)return _listif __name__ == "__main__": audio_list = [5.4, 5.4, 0.45, 1.8, 0.0, 3.6, 3.6, 4.5]# 设置list_filepath = os.path.dirname(os.path.abspath(__file__) )+f'\\audio_list.txt'# 将list写入txt文件list2txt(list_filepath,audio_list)# 将txt文件读取为listret = txt2list(filepath=list_filepath)print('audio_list:',audio_list)print('ret的类型:',type(ret))print('ret的内容:',ret)
总结
这里我们只是演示了list变量,当然str、int、float、dict等也是可以的。需要的可以自己尝试。
另外这里有一个小坑,如果读取txt文件使用a模式,将报错:
with open(filepath, “a+”) as f:
File "D:\csdn_txt_list.py", line 11, in txt2list_list = eval(list_txt)File "<string>", line 0SyntaxError: invalid syntax
或者报错为:SyntaxError: unexpected EOF while parsing,其实只需要改为r只读模式即可。