文章目錄
- 前言
- 一、萬能的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只讀模式即可。