在python中将不同的列表导出到.txt

时间:2015-12-12 14:37:40

标签: python list numpy export

我有一些列表,我都想导出到同一个.txt文件。

到目前为止,我只使用

导出了3个列表
my_array=numpy.array(listofrandomizedconditions)
my_array2=numpy.array(inputsuser)
my_array3=numpy.array(reactiontimesuser)
combined=numpy.column_stack([my_array,my_array2,my_array3])
numpy.savetxt(participantnumber + ".txt", combined, delimiter=" ", fmt ="%-12s") 

这给了我一个类似

的输出
CongruentPositief no input or wrong button no reactiontime
IncongruentNegPos no input or wrong button no reactiontime

由于这很难阅读,我想在所有不同的列表之间添加一个标签。

此外,我想添加一些与前3个不长的192个元素的列表,但后来我得到一个错误,即每个数组必须具有相同的大小。有没有解决的办法?

1 个答案:

答案 0 :(得分:0)

特别是如果你从列表(字符串)开始,我没有看到使用numpy数组的重点。

首先,请尝试打印值:

In [659]: conditions=['one','two','three']
In [660]: values=[1,2,3]
In [661]: other=['xxxx','uuuuuuu','z']

基本格式

In [662]: for xyz in zip(conditions, values,other):
    print("%s,%s,%s"%xyz)
   .....:     
one,1,xxxx
two,2,uuuuuuu
three,3,z

使用制表符和固定长度进行精炼:

In [663]: for xyz in zip(conditions, values,other):
    print("%-12s\t%-12s\t%-12s"%xyz)
   .....:     
one             1               xxxx        
two             2               uuuuuuu     
three           3               z     

下一步是打开一个文件并写入,而不是print

它的列堆栈需要相等长度的字符串。 savetxt只是根据您的参数(以及列数)创建一个fmt字符串,并像我一样写下每个row

In [667]: with open('temp.txt','w') as f:
   .....:     for xyz in zip(conditions,values,other):
   .....:         f.write('%-12s,%-12s,%-12s\n'%xyz)
   .....:         
In [668]: cat temp.txt
one         ,1           ,xxxx        
two         ,2           ,uuuuuuu     
three       ,3           ,z