我有很多自动生成的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中的字段分隔符,因为它是自动生成的。关于如何将逗号保存在字段数据中的任何想法?
答案 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']