2012-02-15 90 views
1

我正在用MATLAB編寫一個解決方案,但我正在使用Python來解析文本文件--Python絕對不是我的強項。基本上,我已經成功地解析了相關行我的文本文件,並希望這些導出爲以下格式的製表符分隔文本文件:Python:追加到數組

num1 num2 num3 num4 num5 
num1 num2 num3 num4 num5 
num1 num2 num3 num4 num5 
num1 num2 num3 num4 num5 

但是,目前,我的輸出文件看起來像這樣:

[num3, num1, num2, num4, num5], [num3, num1, num2, num4, num5], [num3, num1, num2, num4, num5], [num3, num1, num2, num4, num5] 

我的代碼如下所示:

for <blah blah> 
    num3,num1,num2,num4,num5 = data 
    outputData.append(data) 
outfile.write("%s"%(outputData)) 

如何重新排列變量,並讓它們輸出轉換成一個很好的結構數組?

回答

3

嘗試以下操作:

for <blah blah> 
    num3,num1,num2,num4,num5 = data 
    outputData.append('\t'.join(map(str, [num1, num2, num3, num4, num5]))) 

outfile.write('\n'.join(outputData)) 

代碼'\t'.join(map(str, [num1, num2, num3, num4, num5]))將導致以正確的順序數據的製表符分隔字符串,所以outputData將是那些字符串列表。然後'\n'.join(outputData)會以換行符分隔每一行,這是要寫入文件什麼將所有的線從outputData

或者你可以擺脫outputData完全,做這樣的事情:

for <blah blah> 
    num3,num1,num2,num4,num5 = data 
    outfile.write('\t'.join(map(str, [num1, num2, num3, num4, num5])) + '\n') 
+0

我的「NUM1」,「NUM2」等都是和雙精度浮點數。我如何着手將它們轉換爲字符串? (我認爲這是我必須做的,因爲我收到錯誤「期望的字符串,找到浮動」) – CaptainProg 2012-02-15 21:00:33

+0

@CaptainProg - 'map(str,[num1,num2,num3,num4,num5])'將打開漂浮到字符串列表中,我編輯了我的答案以補充說明。 – 2012-02-15 21:02:19

+1

明白了,是的,非常感謝。 Python似乎是一種方便的語言 – CaptainProg 2012-02-15 21:02:53