Python List 的读写求教

2015-07-18 16:22:47 +08:00
 FindHao

Python写list到文件:

f=open("courses","w")
for i in coursesInfo:
f.write(str(i)+"\n")
f.close()

写完之后是这样的,
['A', '2', '良好']
['B', '2', '优秀']
['CD', '2', '良好']
读取的时候,有没有什么简便的方法可以直接读成list呢?

3364 次点击
所在节点    Python
18 条回复
sleeperqp
2015-07-18 16:44:02 +08:00
文件格式有要求么?
没有的话可以把list当做一行输出
比如
A 2 良好
B 2 优秀这样

然后读成string后然后split 就可以得到list了
Tiande
2015-07-18 17:07:24 +08:00
@sleeperqp list 格式的 str 好难转啊 ╮(╯_╰)╭
MasterYoda
2015-07-18 17:09:18 +08:00
json
scream7
2015-07-18 17:11:32 +08:00
直接用dump呗
scream7
2015-07-18 17:12:53 +08:00
@scream7 cPickle.dump() ...
lingo233
2015-07-18 17:13:07 +08:00
每行strip,然后eval?
wizardoz
2015-07-18 17:14:00 +08:00
骚年,我看你需要的是JSON。

import json

# 写
with open("courses",'w') as fp:
json.dump(list(coursesInfo))

#读
with open("courses","r") as fp:
coursesInfo = json.load(fp)
lingo233
2015-07-18 17:15:08 +08:00
忘了eval只对数字有效
lingo233
2015-07-18 17:22:24 +08:00
看了下文档可以得
In [1]: eval("['A', '2', '良好']")
Out[1]: ['A', '2', '良好']
clino
2015-07-18 17:28:14 +08:00
还是json吧
bjjvvv
2015-07-18 20:24:37 +08:00
可以保存的时候去掉list前后的 [ ] ,然后就可以当成一个csv文件来处理了
ekeyme
2015-07-18 20:51:31 +08:00
pickle 或者 json;感觉json最好。码可以照 @wizardoz 的回复抄就好了。
kenX
2015-07-19 00:53:55 +08:00
写的时候
f.write('|'.join(i))

读的时候split一下
ryd994
2015-07-19 09:10:25 +08:00
pickle
如果要通用就json
不要自己再造轮子了
zerh925
2015-07-19 17:40:34 +08:00
conetent = []

with open('filename', 'r') as f:
whole = f.readlines()
for line in whole:
content.append(line.split(',')
zerh925
2015-07-19 17:41:04 +08:00
括回来
keakon
2015-07-19 23:01:11 +08:00
如果你已经保存成那样了,用 literal_eval

>>> from ast import literal_eval
>>> literal_eval("['a', 1, '蛤蛤']")
['a', 1, '\xe8\x9b\xa4\xe8\x9b\xa4']
kaneg
2015-07-22 15:24:07 +08:00
Python 的json貌似不支持单引号

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/206599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX