[['12', '12'], ['12', '13']]
对上面的这个嵌套列表,怎么从文件中读出来呢?怎么往里面追加新的元素呢?
先说思路
with open('D:\\user.txt','r',encoding='utf-8') as f:
User=[]
User=f.readlines()
如上文件读取mode=‘r’只读模式,按照readlines对文件内容进行读取并返回列表
我以为它返回的内容是这样的
[['12', '12'], ['12', '13']]
实际上它返回的内容是这样的
["[['12', '12'], ['12', '13']]"]
再加上下面我要追加新的元素之后,整体返回的是这样的
[["[['12', '12'], ['12', '13']]"],['14','14']]
等于是把我之前的列表直接str了变成一个元素
这一步问题出在写进去的时候,我用writelines是以str形式写入,代码如下
with open('D:\\user.txt', 'w',encoding='utf-8') as f:
f.writelines(str(User))
f.close()
所以读出来的时候,要把咱们原先的嵌套列表掏出来
["['12','12']"]
把上面这个,变成下面这个
['12','12']
这下就简单了,我们知道如何把一个元素从列表中取出来,就是在后面加个[0],表示把他的第一个元素取出来,再用eval函数去除双引号,代码如下
with open('D:\\user.txt','r',encoding='utf-8') as f:
User=[]
User=eval(f.readlines()[0])
只需要这一小步,轻轻松松搞定
接下来就可以用嵌套列表储存大家想要的数据在txt文件里面啦,快去试试
下面是完整代码
with open('D:\\user.txt','r',encoding='utf-8') as f:
User=[]
User=eval(f.readlines()[0])
User.append(['12','12'])
with open('D:\\user.txt', 'w',encoding='utf-8') as f:
f.writelines(str(User))
f.close()
uu们不要白嫖呀,一键三连走起