Python CSV 问题
我正在测试Python中的CSV组件,但遇到了一些问题。
我有一个比较标准的CSV字符串,默认的选项看起来都适合我的测试,但结果不应该把1、2、3、4放在一行,把5、6、7、8放在另一行吗?
非常感谢任何提供的帮助!
Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import csv >>> c = "1, 2, 3, 4\n 5, 6, 7, 8\n" >>> test = csv.reader(c) >>> for t in test: ... print t ... ['1'] ['', ''] [' '] ['2'] ['', ''] [' '] ['3'] ['', ''] [' '] ['4'] [] [' '] ['5'] ['', ''] [' '] ['6'] ['', ''] [' '] ['7'] ['', ''] [' '] ['8'] [] >>>
4 个回答
2
这行代码的意思是,把一个用换行符分隔的字符串(c)变成一个可以逐行读取的格式。具体来说,csv.reader是一个工具,它能帮助我们处理以逗号分隔的文件,而这里的c.split('\n')则是把字符串c按照换行符切分成多行。最终,test就成了一个可以逐行读取这些数据的对象。
3
csv.reader
是一个可以处理可迭代对象的工具,也就是说它可以接收一个能逐行返回内容的东西。你可以查看官方文档了解更多信息。你现在传给它的是一个字符串,而字符串其实是一个逐个返回字符的可迭代对象。
所以,你可以用 csv.reader(c.splitlines())
这样的方式来处理它,或者用类似的方法!
8
csv.reader 需要一个可以逐个取出元素的东西。你给它的是 "1, 2, 3, 4\n 5, 6, 7, 8\n"
;这样的话,它会一个字符一个字符地处理。试试给它一个列表,比如 ["1, 2, 3, 4\n", "5, 6, 7, 8\n"],这样它就会一行一行地处理了。