2012-02-15 77 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