如何在python 3中读取和写入文件串列表?

时间:2015-10-02 19:51:16

标签: python string list file python-3.x

我尝试了一些方法,但它们要么不起作用,要么变成列表中每个项目的字母。 例如,这(用于编写列表):

with open("data.txt", 'w') as f:
    for s in data:
        f.write(s + '\n')

和这(用于阅读列表):

try:
    with open("data.txt", 'r') as f:
        data = [Line.rstrip('\n') for Line in f]
except FileNotFoundError:
    print ("There is nothing to show")
else:
    print (data) 

当文件中我想要的列表是“['Bob:6','Dave:4']”时,打印出来:“

['B', 'o', 'b', ':', '6', 'D', 'a', 'v', 'e', ':', '4'] 

基本上,我希望它可以正确读取,并将不同的值正确分开。

2 个答案:

答案 0 :(得分:0)

您的写作代码段中的“数据”是什么?我猜它是一个不是列表的字符串,因此迭代它就是每行写一个字符,而不是每行写一个属性。

在编辑器中打开文本文件以确保您正确地编写它...

答案 1 :(得分:0)

您已将数据写为一列字符,并且每次写入时都会将其写回为字符。当您写入文件时,显然您的数据是一行数据。

 **for s in data**

 --- if you data is just one line, it will be written as a column...

so I think you have written Bob:6', 'Dave:4' to file, 

作为单个字符列     您应该将数据从字符串更改为列表。 只需将该数据字符串放入列表中,data = list(data)   并尝试再次写作和阅读。一切都应该顺利。