我们在想要写自己的小程序时,比如​​打卡小程序​​​(超链接点击跳转),我们需要保存一些简单的数据,这时候如果我们去研究数据库,如SQL,MySQL就显得画蛇添足了,最实用的策略就是我们直接将运行后得到的数据结果保存在​​txt​​​文件中,下次调用程序的时候直接读取​​txt​​​文件中的数据进行操作即可。但是在这个过程中我们会遇到一个严重的问题,就是我们写入​​txt​​​文件的数据通常是以​​str​​​字符的形式写入的,并且读取的时候也是以字符的形式读取的,也就是说如果我们将一个列表数据以字符的形式写入​​txt​​​文件后,下次从​​txt​​​文件读取出来的数据类型变为了​​str​​​类型,从而无法进行我们需要的运算操作,这时就会十分棘手,对此,我们这里介绍一种能够将从​​txt​​​文件中读取到的​​str​​​类型数据转换为​​list​​​数据类型的方法。
代码如下:

class Debug:
def mainProgram(self):
list1 = [[2, 0], [4, 0]]
print(type(list1)) # <class 'list'>
print(list1) # [[2, 0], [4, 0]]
list1 = str(list1)
print(type(list1)) # <class 'str'>
print(list1) # [[2, 0], [4, 0]]


if __name__ == "__main__":
main = Debug()
main.mainProgram()

我们先创建一个​​list​​​对象并对这个​​list​​​对象进行​​str​​​数据类型转换模拟出从​​txt​​​文件中读取到的数据。从上面的代码输出结果我们可以看到,​​list​​​类型数据已经成功被转换为了​​str​​​类型的数据。接下来我们使用​​ast​​​模块实现​​str​​​数据类型到​​list​​数据类型的转换。代码如下:

import ast


class Debug:
def mainProgram(self):
list1 = [[2, 0], [4, 0]]

list1 = str(list1)

list1 = ast.literal_eval(list1)
print(list1) # [[2, 0], [4, 0]]
print(type(list1)) # <class 'list'>


if __name__ == "__main__":
main = Debug()
main.mainProgram()

我们可以看到获取到的数据类型已经从​​str​​​变为了可以进行运算操作的​​list​​​类型。