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