Python在csv字段上拆分字符串(',')

时间:2015-03-18 12:40:42

标签: python csv xlsx string-split

我有一个问题,我正在读取一个csv文件作为文件(我更容易得到读取为csv的结果)从应用程序导出。我有我的代码工作来读取该文件并将其导入列表。然后我遍历列表并保存到适当的字段。我正在使用内置的方法.split(','),它在某一点上很有用。我可以按照自己想要的方式获取颜色,但是第70行一直是我的错误。我发现由于某个字段有多行导致程序将每行导入列表并为每行创建一列。在尝试拆分时,如何忽略具有多行的字段?

2 个答案:

答案 0 :(得分:0)

您可以通过在其上执行字符串.replace('\n', ' ')来删除字段中的换行符。

答案 1 :(得分:0)

  

我发现由于某个字段有多行导致程序将每行导入列表并为每行创建一列。在尝试拆分时,如何忽略具有多行的字段?

您应该只使用核心csv模块,而不是尝试自己解析文件,并且必须处理边缘情况。

假设你有这样的数据:

 +----------+-----------+----------+
 | Aaa      | Bbb       | Ccc      |
 +---------------------------------+
 | 1        | 2         | 3        |
 +---------------------------------+
 | Foo      | Bar       | Goo      |
 |          | Baz       |          |
 |          | Bag       |          |
 +---------------------------------+
 | 5        | 6         | 7        |
 +----------+-----------+----------+

导出为CSV文件,如下所示:

$cat test_file.csv
Aaa,Bbb,CCC
1,2,3
Foo ,"Bar
Baz
Bag",Goo
5,6,7

您可以按照以下方式轻松阅读:

import csv

with open('test_file.csv', 'rb') as csvfile:
    csv_reader = csv.reader(csvfile)
    for row in csv_reader:
        print row

给出:

$python test_reader.py

['Aaa', 'Bbb', 'CCC']
['1', '2', '3']
['Foo ', 'Bar\nBaz\nBag', 'Goo']
['5', '6', '7']