作者KSJ (阿真)
看板Python
标题Re: [问题] 请问读取CSV档,如何让他LIST方式呈现
时间Fri Aug 26 22:26:02 2011
※ 引述《lthstar (Never Say Never)》之铭言:
: 正在学习python中,目前正在写读取csv档,
: 里面内容如下:
: John Cleese, Ministry of Silly Walks, 5555421, 2011/10/27
: Eric Idle, Spamalot, 55553311, 2011/3/29
你的csv档很奇怪 逗号後有空格 不像一般的csv档
不过很整齐 有解
: 图片:
: http://img696.imageshack.us/img696/1309/2011826053846.jpg
我看起来图片像支青蛙??
: 我的程式:
: def load_friends(filename):
: """takes the name of a file containing friends information
: as described in the introduction and returns a dictionary containing
: information about the friends in the file
: load_friends(str) -> dict(str:str)
: """
: f = open(filename, 'U')
小的受教的<(_ _)> U是可以解决换行符号的吧?(上网查的)
: info = {}
: for i in f:
: i_info =i.split(',')
: info[i_info[0]]=i_info[1:]
: f.close()
: print"your current friend list:"
: return info
: 但最後return 回来都会出现多出\n
: 如下:
: your current friend list:
: {'John Cleese': ['Ministry of Silly Walks', '5555421', '27-Oct\n'], 'Eric
: Idle': ['Spamalot', '55553311', '29-Mar\n']}
很好奇为什麽值前面的空格都不见了??
一般我是用
friend_info={}
for line in file_:
linelist = line.split(", ") #用逗号+空格
linelist[-1] = linelist[-1].rstrip("\n") #去掉换行
name = linelist[0]
info = linelist[1:]
friend_info[name] = info
这样应该就行了 (上面程式我没跑过…)
: 想请问要怎麽把\n拿掉呢?
我通常是用
linelist[-1] = linelist[-1].rstrip("\n")
: 假如我想要一段资料分行列的话,
: 要怎麽写呢?
这是什麽意思? 是说值要换行吗?
: 问题可能很简单,但我一直试,就拿不掉\n,
: 用with 写的话,是不会有\n出来,不过会多一个[ ]出来
: 我for回圈底下是这样设的
: for i in loader:
: info.setdefault(i[0],[]).append(i[1:])
这里我看不懂...
: 可以帮我看一下吗?
: 谢谢!
参考上方
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.63.249
※ 编辑: KSJ 来自: 140.112.63.249 (08/26 22:27)
※ 编辑: KSJ 来自: 140.112.63.249 (08/26 22:41)
1F:推 lthstar:谢谢! 我来试试^^ 08/27 10:41
2F:→ uranusjr:用 ', ' 如果碰到标准的 csv 就出国了, 我会用 strip() 08/27 11:15
3F:→ lthstar:我试了!不能用', ',要',' 这样才可以执行成功!THX 08/27 11:31
4F:→ lthstar:ur大的也成功了!谢谢^^ 08/27 11:32
5F:→ KSJ:看起来 档是一般的csv档 与文章中的内容似乎不同?? 08/27 12:22
6F:→ lthstar:当初文字是复制IDLE上的,但CSV里的文字间没有空格!抱歉~ 08/27 12:53
7F:推 cobrasgo:其实也可以用re.sub,里面塞regular expression 08/29 22:06