如何在Python中保存一个数组到文本文件?

6xfqseft  于 2024-01-05  发布在  Python
关注(0)|答案(6)|浏览(149)

我有一个这样的数组:

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

字符串
我如何将其保存为以下格式的abc.txt文件:

  1. nameserver panel
  2. nameserver panel


我试着这样做,在每一行上迭代:

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


它显示了这个错误:

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

1qczuiv0

1qczuiv01#

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

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

字符串

lh80um4z

lh80um4z2#

可能最简单的方法是使用json模块,并在一个步骤中将数组转换为列表:

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

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

hmtdttj4

hmtdttj43#

使用csv.writer

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

字符串
tmp_file.txt现在喜欢这个

  1. nameservers panel
  2. nameservers panel

cxfofazt

cxfofazt4#

众多可能性之一:

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

字符串

zaq34kh6

zaq34kh65#

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

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

字符串
其中l1是您给出的列表。

56lgkhnf

56lgkhnf6#

另一种解决办法可能是:

  1. # import packages
  2. from numpy import asarray
  3. from numpy import savetxt
  4. # Lets say you have the data in `y`
  5. data = asarray(y)
  6. # Save the file
  7. savetxt('data.csv', data, delimiter=',')

字符串

相关问题