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

6xfqseft  于 5个月前  发布在  Python
关注(0)|答案(6)|浏览(58)

我有一个这样的数组:

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

1qczuiv0

1qczuiv01#

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

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

字符串

lh80um4z

lh80um4z2#

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

import json

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

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

hmtdttj4

hmtdttj43#

使用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

cxfofazt

cxfofazt4#

众多可能性之一:

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)

字符串

zaq34kh6

zaq34kh65#

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

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

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

56lgkhnf

56lgkhnf6#

另一种解决办法可能是:

# import packages
from numpy import asarray
from numpy import savetxt

# Lets say you have the data in `y`
data = asarray(y)

# Save the file
savetxt('data.csv', data, delimiter=',')

字符串

相关问题