如何防止在双引号保护的表达式上用逗号分隔?

2024-09-29 05:26:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一行(来自csv)看起来像这样:

line = 'M1,After.Life,Agnieszka Wojtowicz-Vosloo,Agnieszka Wojtowicz-Vosloo,"Drama, Thriller",2009/10/2/,80'

当我做print line.split(',')我得到:

['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', '"Drama', ' Thriller"', '2009/10/2/', '80']

这是不受欢迎的,因为它也分裂“戏剧,惊悚片”。换句话说,我想要的结果是:

['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', '"Drama Thriller"', '2009/10/2/', '80']

有什么简单的方法吗?谢谢


Tags: csv方法linesplitprintafterlifem1
1条回答
网友
1楼 · 发布于 2024-09-29 05:26:44

您可以使用^{} module。您有一个CSV格式,并且该模块知道如何正确处理引用的值。你知道吗

import csv

with open(somefilename, 'rb') as inputfile:
    reader = csv.reader(inputfile)
    for row in reader:
        # row is a list of string values found on each line, ready split, 
        # with qouted values preserved.

示例行的快速演示:

>>> import csv
>>> inputfile=['M1,After.Life,Agnieszka Wojtowicz-Vosloo,Agnieszka Wojtowicz-Vosloo,"Drama, Thriller",2009/10/2/,80\n']
>>> list(csv.reader(inputfile))
[['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', 'Drama, Thriller', '2009/10/2/', '80']]

请注意,引号已被删除,但逗号仍作为值的一部分存在。你知道吗

相关问题 更多 >