Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python csv问题_Python_Csv - Fatal编程技术网

python csv问题

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

我正在用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'] [] >>>
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使用的是文件。

请注意,我关闭了这个文件而不是新的文件,因为另一个文件的答案在这里很有用,但反过来就不太有用了。这仍然是创意的标志。