我在MATLAB中编写解决方案,但使用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))


如何重新排列变量并使它们输出到一个好的结构化数组中?

最佳答案

请尝试以下操作:

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')

10-06 13:04