计数没有。行中的定界符,同时忽略作为数据值一部分的定界符
Count no. of delimiters in line while ignoring the delimiter which is part of data value
我正在逐行读取一个大的 csv 文件,我想数一数。每行中的分隔符。
但如果分隔符是数据值的一部分,则不应计算在内。
数据集几条记录:
com.abc.xyz, ple Sara, "DIT, Government of Maharashtra, India"
com.mtt.rder, News Maharashtra, Time Internet Limited"
com.grner.mahya, Mh Swth, "Public Health Department, Maharashtra"
在所有 3 行中,实际逗号(将数据分成多列)的数量只有 2 个
但下面的代码片段输出
- 第 1 行有 4 个逗号
- 第 2 行 2
- 3 表示第 3 行
代码段:
file1 = open('file_name.csv', 'r')
while True:
line = file1.readline()
if not line:
break
print(line.count(','))
您可以使用 python 中的 csv 包来计算列数:
import csv
with open('file_name.csv', 'rt') as f:
csv_reader = csv.reader(f, skipinitialspace=True)
for line in csv_reader:
print(len(line))
一种简单的方法是使用正则表达式并删除两个 "
之间的所有内容,这样就不会计算里面的逗号。
import re
file1 = open('input.csv', 'r')
while True:
line = file1.readline()
if not line:
break
line = re.sub('".*?"', '', line)
print(line.count(','))
输出:
2
2
2
我正在逐行读取一个大的 csv 文件,我想数一数。每行中的分隔符。
但如果分隔符是数据值的一部分,则不应计算在内。
数据集几条记录:
com.abc.xyz, ple Sara, "DIT, Government of Maharashtra, India"
com.mtt.rder, News Maharashtra, Time Internet Limited"
com.grner.mahya, Mh Swth, "Public Health Department, Maharashtra"
在所有 3 行中,实际逗号(将数据分成多列)的数量只有 2 个
但下面的代码片段输出
- 第 1 行有 4 个逗号
- 第 2 行 2
- 3 表示第 3 行
代码段:
file1 = open('file_name.csv', 'r')
while True:
line = file1.readline()
if not line:
break
print(line.count(','))
您可以使用 python 中的 csv 包来计算列数:
import csv
with open('file_name.csv', 'rt') as f:
csv_reader = csv.reader(f, skipinitialspace=True)
for line in csv_reader:
print(len(line))
一种简单的方法是使用正则表达式并删除两个 "
之间的所有内容,这样就不会计算里面的逗号。
import re
file1 = open('input.csv', 'r')
while True:
line = file1.readline()
if not line:
break
line = re.sub('".*?"', '', line)
print(line.count(','))
输出:
2
2
2