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'] [] >>> Python 2.6.2(r262:716002009年4月16日09:17:39) [GCC 4.0.1(Apple Computer,Inc.build 5250)]关于达尔文 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入csv >>>c=“1,2,3,4\n 5,6,7,8\n” >>>测试=csv.reader(c) >>>对于测试中的t: ... 打印t ... ['1'] ['', ''] [' '] ['2'] ['', ''] [' '] ['3'] ['', ''] [' '] ['4'] [] [' '] ['5'] ['', ''] [' '] ['6'] ['', ''] [' '] ['7'] ['', ''] [' '] ['8'] [] >>>python csv问题,python,csv,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 "lic
test=csv.reader(c.split('\n'))csv.reader需要一个iterable。你给了它
“1,2,3,4\n 5,6,7,8\n”
;迭代产生字符。试着给它[“1,2,3,4\n”,“5,6,7,8\n”]——迭代将产生行。csv。reader
获取一个iterable或迭代器返回行,请参阅。您将向其传递一个字符串,该字符串是一个返回单个字符的iterable
因此,请使用
csv.reader(c.splitlines())
或类似的构造 要使其更像文件,请尝试以下操作
import StringIO
c= StringIO.StringIO( "1, 2, 3, 4\n 5, 6, 7, 8\n" )
现在c看起来像一个文件。大多数情况下(如果不是全部的话),csv使用的是文件。请注意,我关闭了这个文件而不是新的文件,因为另一个文件的答案在这里很有用,但反过来就不太有用了。这仍然是创意的标志。