我在python中有一个列表(矩阵),我想将它导出到一个文本文件。内部列表有3个元素。我的文件将有3列。换句话说,第一列将具有内部列表的第一个元素,第二列将具有内部列表的第二个元素,第三列将具有第三个元素。我试图制作它,但所有元素都在一个列中。 这是一个小例子: 输入:
[['ENSG00000137288.5', 0.16721311, 0.13442624], ['ENSG00000116032.5', 0.094311371, 0.1444611], ['ENSG00000167578.12', 0.062894806, 0.10162043]]
输出(可以是文本文件):
ENSG00000137288.5 0.16721311 0.13442624
ENSG00000116032.5 0.094311371 0.1444611
ENSG00000167578.12 0.062894806 0.10162043
你知道怎么做吗?
感谢
答案 0 :(得分:0)
不使用numpy,pandas或任何其他外部包的最简单方法是这样的:
data = [
['ENSG00000137288.5', 0.16721311, 0.13442624],
['ENSG00000116032.5', 0.094311371, 0.1444611],
['ENSG00000167578.12', 0.062894806, 0.10162043]
]
# builtin python functions
data_file = "\n".join([" ".join(map(lambda x: str(x),row)) for row in data])
print data_file
答案 1 :(得分:0)
试试csv.writer
:
import csv
your_data=[['ENSG00000137288.5', 0.16721311, 0.13442624], ['ENSG00000116032.5', 0.094311371, 0.1444611], ['ENSG00000167578.12', 0.062894806, 0.10162043]]
with open('output.txt', 'wb') as csvfile:
w = csv.writer(csvfile, delimiter=' ')
for row in your_data:
w.writerow(row)
您可以指定所需的任何分隔符(逗号,制表符,空格等),矩阵中可以有任意数量的列和行。
如果要在Excel中打开文件,请使用逗号,
作为分隔符并将文件名更改为.csv
:
import csv
your_data=[['ENSG00000137288.5', 0.16721311, 0.13442624], ['ENSG00000116032.5', 0.094311371, 0.1444611], ['ENSG00000167578.12', 0.062894806, 0.10162043]]
with open('output.csv', 'wb') as csvfile:
w = csv.writer(csvfile, delimiter=',')
for row in your_data:
w.writerow(row)
或将tab
与dialect='excel'
一起使用:
import csv
your_data=[['ENSG00000137288.5', 0.16721311, 0.13442624], ['ENSG00000116032.5', 0.094311371, 0.1444611], ['ENSG00000167578.12', 0.062894806, 0.10162043]]
with open('output.xls', 'wb') as csvfile:
w = csv.writer(csvfile, delimiter='\t', dialect='excel')
for row in your_data:
w.writerow(row)