【问题标题】:How do I read and write a list of strings to a file in python 3?如何在 python 3 中读取字符串列表并将其写入文件?
【发布时间】:2015-10-02 19:51:15
【问题描述】:

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

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'] 

基本上,我希望它能够正确读取,并正确分隔不同的值。

【问题讨论】:

  • 你的代码在哪里,有什么问题?
  • 那么...file.writelines?
  • 你想要一些严肃的东西,不要伤害自己。将列表写入文件时,您是否尝试过循环遍历列表?
  • 你能用你尝试过的所有方法来启发我们人类吗?
  • 如果您添加您尝试过的方法,您将有更好的机会为工作解决方案找到方向。

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


【解决方案1】:

你写的sn-p中的“数据”是什么?我猜它是一个字符串而不是一个列表,因此迭代它是每行写一个字符,而不是每行一个属性。

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

【讨论】:

    【解决方案2】:

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

     **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) 并再次尝试写作和阅读。一切都应该顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      相关资源
      最近更新 更多