csv 如何用逗号分隔一行,但忽略引号内的逗号[重复]

pprl5pva  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(52)

这个问题已经有答案了

十二年前就关门了。

可能重复:

How to read a CSV line with "?
我已经看到了一些相关的问题,但没有一个直接解决我想做的事情。我正在阅读从CSV文件中的文本行。
所有的项目都在引号中,有些在引号中有额外的逗号。我想沿着沿着逗号分割行,但忽略引号中的逗号。在Python中有没有一种方法可以做到这一点,而不需要大量的正则表达式语句。
例如:

"114111","Planes,Trains,and Automobiles","50","BOOK"

字符串
我想把它解析成4个独立的变量值:

"114111"  "Planes,Trains,and Automobiles"  "50" "Book"


line.split()中是否有一个我遗漏的简单选项?

xriantvc

xriantvc1#

如果要从CSV文件中读取行,请使用标准库中的Python csv模块,该模块将处理用逗号分隔的值。

示例

# cat test.py
import csv
with open('some.csv') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)
# cat some.csv
"114111","Planes,Trains,and Automobiles","50","BOOK"
# python test.py

['114111', 'Planes,Trains,and Automobiles', '50', 'BOOK']
[]
55ooxyrt

55ooxyrt2#

你可能会在“”上分裂,那就是“[引号][逗号][引号]”
另一种选择是使用转义字符,所以如果有人想在字符串中嵌入逗号,他们会使用\c,如果他们想在字符串中嵌入反斜杠,他们会使用\。然后你必须拆分字符串,然后在处理之前取消转义。

相关问题