python 如何将列表列表写入文件
python how to write list of lists to file
我正在尝试将字符串列表的列表写入文件。
我的大名单是这样的:
1.0 '0:25.0' '1:50.0' '2:131.0' '3:202.0'
1.0 '0:2.0' '1:36.0' '2:131.0' '3:188.0'
-1.0 '0:56.0' '1:53.0' '2:55.0' '3:58.0'
-1.0 '0:50.0' '1:51.0' '2:48.0' '3:55.0'
and so on ...
第一列是int类型,其余都是str类型。
我试过以下代码:
f = open('dataset', 'w')
for i in range(len(mylist[0]):
f.write(str(item) for item in mylist[i])
f.close()
但是我得到以下错误:
TypeError: expected a character buffer object
错误发生在上面代码的第3行(f.write(...))
编辑:
我试过:
with open("train_data.csv", 'w') as f:
writer = csv.writer(f)
writer.writerows(listdata)
但是,令人惊讶的是,对于以 -1.0 开头的行,我只得到前 31 个元素(每行(列表)包含 362 个元素)。我不知道为什么会这样。
使用 csv 库:
import csv
with open("out.csv", "w") as f:
wr = csv.writer(f)
wr.writerows(list_of_lists)
writerows
采用可迭代的可迭代,因此每个子列表的内容将写入每一行。
所以 list_of_lists = [[1,2,3],[4,5,6],[7,8,9]]
你的 out.csv 看起来像:
1,2,3
4,5,6
7,8,9
正如 Scironic 评论的那样,您可以传递任何您想要的定界符,即 wr = csv.writer(f, delimiter=" ")
表示 space 等。
我会这样做。
from __future__ import with_statement
mylist = [[1.0,'0:25.0','1:50.0'],[-1.0,'0:56.0','1:53.0']] # as example
with open('output.txt', 'w') as f:
for _list in mylist:
for _string in _list:
#f.seek(0)
f.write(str(_string) + '\n')
结果,我在 output.txt:
中得到了这个
1.0
0:25.0
1:50.0
-1.0
0:56.0
1:53.0
我正在尝试将字符串列表的列表写入文件。 我的大名单是这样的:
1.0 '0:25.0' '1:50.0' '2:131.0' '3:202.0'
1.0 '0:2.0' '1:36.0' '2:131.0' '3:188.0'
-1.0 '0:56.0' '1:53.0' '2:55.0' '3:58.0'
-1.0 '0:50.0' '1:51.0' '2:48.0' '3:55.0'
and so on ...
第一列是int类型,其余都是str类型。
我试过以下代码:
f = open('dataset', 'w')
for i in range(len(mylist[0]):
f.write(str(item) for item in mylist[i])
f.close()
但是我得到以下错误:
TypeError: expected a character buffer object
错误发生在上面代码的第3行(f.write(...))
编辑:
我试过:
with open("train_data.csv", 'w') as f:
writer = csv.writer(f)
writer.writerows(listdata)
但是,令人惊讶的是,对于以 -1.0 开头的行,我只得到前 31 个元素(每行(列表)包含 362 个元素)。我不知道为什么会这样。
使用 csv 库:
import csv
with open("out.csv", "w") as f:
wr = csv.writer(f)
wr.writerows(list_of_lists)
writerows
采用可迭代的可迭代,因此每个子列表的内容将写入每一行。
所以 list_of_lists = [[1,2,3],[4,5,6],[7,8,9]]
你的 out.csv 看起来像:
1,2,3
4,5,6
7,8,9
正如 Scironic 评论的那样,您可以传递任何您想要的定界符,即 wr = csv.writer(f, delimiter=" ")
表示 space 等。
我会这样做。
from __future__ import with_statement
mylist = [[1.0,'0:25.0','1:50.0'],[-1.0,'0:56.0','1:53.0']] # as example
with open('output.txt', 'w') as f:
for _list in mylist:
for _string in _list:
#f.seek(0)
f.write(str(_string) + '\n')
结果,我在 output.txt:
中得到了这个1.0
0:25.0
1:50.0
-1.0
0:56.0
1:53.0