在python中将不同的列表导出到.txt
Posted
技术标签:
【中文标题】在python中将不同的列表导出到.txt【英文标题】:exporting different lists to .txt in python 【发布时间】:2015-12-12 14:37:40 【问题描述】:我有几个列表都想导出到同一个 .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】:特别是如果您从(字符串)列表开始,我看不出使用 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
【讨论】:
工作就像一个魅力!谢谢。以上是关于在python中将不同的列表导出到.txt的主要内容,如果未能解决你的问题,请参考以下文章
在python中将具有不同数据类型的pandas数据框导出到csv
Python:利用for循环比较两个列表元素的异同进而找出共有元素各自不同元素并全部导出到csv文件实现代码