将数组写入文本文件,特别是fomat

时间:2016-01-16 19:00:48

标签: python numpy

我是python的新手,并努力获得以下格式。

我有3个相同大小的数组。 a=[1,2,3]b=[4,5,6]c=[7,8,9]。我想将它们写入第二行的文本文件。第一行已经有一些文本有三列,a,b和c。我希望输出看起来像

a  b  c
1  4  7
2  5  6
3  8  9 

我尝试使用numpy.savetxt('test.txt', (a,b,c), '%s', delimiter='\t')。但它没有给出我想要的格式。 我的实际数据将包含14列,每列有1200个值。 有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

如果稍后解析对您很重要,我必须建议编写csv文件。

 import csv
 data = [['a', 'b', 'c'],
         ['1', '2', '3'],
         ['4', '5', '6'],
         ['7', '8', '9']]

 with open('testing.csv', 'w', newline='') as file:
     csv = csv.writer(file, delimiter=',')
     csv.writerows(data)

如果您使用csv,您可以稍后在任何地方解析和读取您的文件。甚至在sql数据导入中。

答案 1 :(得分:0)

更简单的方法就是遍历您的元素并准确写出您想要的内容。您可以根据需要自定义它:

col_headers = ['a','b','c']
a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
columns = [a,b,c]
data = [col_headers]+zip(*columns)
separator = '\t' # or ', ' for example 
with open('yourfile.txt','w') as fout:
    for line in data:
        fout.write( separator.join( map(str,line) ) )
        fout.write('\n')

答案 2 :(得分:-2)

感谢您的帮助! 我试过这个并且似乎以我想要的格式运行良好。

f=open('testing.txt,'w')
temp= str(1) + '\t' + str(2) + '\t' + str(3) + '\n'
f.write(val)

对第二行使用for循环,依此类推。 这将写入包含1行和3列的文本文件。稍后我可以加载这个文件并获取我想要的值。