使用Python在字段中保留CSV逗号

时间:2015-07-02 11:14:49

标签: python csv comma

我有很多自动生成的CSV文件,其结构如下:

id,movie,actors
1,title1,actor1,actor2
2,title2,actor1,actor2

现在,当我尝试用Python加载actors列时:

import csv
with open('file.csv') as csvfile:
  reader = csv.DictReader(csvfile)
    for row in reader:
      actors = row['actors']

我的每一行都有我的actor1和actor2,但他们不再有逗号,所以我不能将它们拆分并视为两个不同的角色。遗憾的是,我没有选择更改CSV中的字段分隔符,因为它是自动生成的。关于如何将逗号保存在字段数据中的任何想法?

2 个答案:

答案 0 :(得分:0)

我会使用maxsplit参数以下列方式进行拆分:

with open('inputfile.txt') as f:
  for line in f.readlines():
    id, movie, actor_list = line.strip().split(maxsplit = 2)
    actors = actor_list.split()
    .... do something with id, movie, actors

答案 1 :(得分:0)

您的DictReader只需稍微配置一下,然后就可以按需要使用了。根据您上面的示例数据和csv看起来如下:

csv文件内容

1,title1,actor1,actor2
2,title2,actor1,actor2
3,title3,actor1,actor2,actor3

以下内容应该有效......

with open('file.csv') as csvfile:
    reader = csv.DictReader(csvfile, delimiter=",", fieldnames=["id","movie"], restkey="actors")
    for row in reader:
        actors = row['actors']

actors将按如下方式保存一个列表:

['actor1', 'actor2']

如果你想用逗号保存:

print ",".join(actors)

您也可以按如下方式访问其他两个字段:

row['id']
row['movie']