【问题标题】:How save a array to text file in python?如何在python中将数组保存到文本文件?
【发布时间】:2019-01-22 10:47:39
【问题描述】:

我有一个这种类型的数组:

xyz = [['nameserver','panel'], ['nameserver','panel']]

如何以这种格式将其保存到 abc.txt 文件中:

nameserver panel
nameserver panel

我在迭代每一行时尝试了这个:

np.savetxt("some_i.txt",xyz[i],delimiter=',');

显示此错误:

TypeError: Mismatch between array dtype ('<U11') and format specifier 
('%.18e')

【问题讨论】:

  • 您的原始列表包含nameservers,但已保存文件--nameserver(末尾没有s
  • 您可以浏览您的列表并将其打印到屏幕上吗? (只是想弄清楚你遇到了什么问题)
  • numpy 的 savetxt 方法有一个默认格式说明符:fmt='%.18e',用于保存浮点数而不是字符串。因此出现错误。

标签: python arrays python-3.x


【解决方案1】:

您可以直接将其写入文件。

with open('outfile.txt', 'w') as f:
    f.write('\n'.join([' '.join(l2) for l2 in l1]))

l1 是您提供的列表。

【讨论】:

  • 不要在变量名中使用l
  • 让事情变得不可读,尤其是与1l1ll11l1l111l1l1ll 混合时——你能读懂吗?
  • @lenik 所以我不能命名我的变量locationletter?您不应该使用 l 作为单个字符变量名,对此没有其他限制 (PEP-8)
  • 12 不是变量名...@lenik ;) 不能是 joined
【解决方案2】:

多种可能性之一:

stuff = [['nameservers','panel'], ['nameservers','panel']]
with open("/tmp/out.txt", "w") as o:
    for line in stuff:
        print("{} {}".format(line[0], line[1]), file=o)

【讨论】:

    【解决方案3】:

    这是一个可能的解决方案:

    data = [['nameservers','panel'], ['nameservers','panel']]
    
    with open("output.txt", "w") as txt_file:
        for line in data:
            txt_file.write(" ".join(line) + "\n") # works with any number of elements in a line
    

    【讨论】:

      【解决方案4】:

      使用csv.writer:

      import csv
      
      data = [['nameservers','panel'], ['nameservers','panel']]
      
      with open('tmp_file.txt', 'w') as f:
          csv.writer(f, delimiter=' ').writerows(data)
      

      tmp_file.txt 现在会喜欢这个

      nameservers panel
      nameservers panel
      

      【讨论】:

        【解决方案5】:

        可能最简单的方法是使用json模块,一步将数组转换为list:

        import json
        
        with open('output.txt', 'w') as filehandle:
        json.dump(array.toList(), filehandle)
        

        使用 json 格式允许许多不同系统之间的互操作性。

        【讨论】:

        • 美丽的方法。
        猜你喜欢
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多