2016-01-16 30 views
1

我是python的新手,努力獲得下面的格式。我有3個相同大小的數組。 a=[1,2,3],b=[4,5,6]c=[7,8,9]。我想將它們寫入第二行的文本文件。第一行已經有一些文字,有三列a,b和c。我想輸出看起來像將數組寫入文本文件特別是fomat

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

要清楚:你想在你的文件中的絕對間距?定義你的格式。 –

+0

我不知道我瞭解你的問題。我希望數據更像一個具有行和列的表格,其中一個空格既可以水平也可以垂直。 – prajo

+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數據導入。

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

感謝您的幫助! 我試過了,似乎在我想要的格式下工作得很好。

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

用於第二行的循環等等。 這寫入一個行和三列的文本文件。稍後我可以加載這個文件並獲取我想要的值。

+0

這將工作正常。我仍然推薦使用csv,它基本上是一樣的,但是任何數據系統都會識別文件格式。 –

+0

你應該接受其中的一個。 @prajo – Gioelelm