我是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个值。
有人可以帮助我吗?
答案 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列的文本文件。稍后我可以加载这个文件并获取我想要的值。