使用python解析前端(vue)post上来的csv文件,并处理csv文件中含有英文逗号

import codecs
import csv
import os
# 传来的csv文件为bytes格式
fileInfo = request.body.decode('utf-8')
print(fileInfo)
fileInfoList = fileInfo.split('\r\n')
# csv文件在列表中为五位
context = fileInfoList[4]

path = os.path.abspath('.')
with codecs.open(path+'file.csv', 'wb+', 'utf-8') as file_csv:
    writer = csv.writer(file_csv, delimiter=',')
    contextList = context.split('\n')
    for item in contextList:
        if item != '':
            # 将双引号之间的英文逗号换成中文逗号(一般csv文件中若有英文逗号,则一般该单元格会被双引号括住),主要思路为先查找下标,在利用切边进行替换,while True起到csv一行数据的所有替换
            while True:
                index_range_obj = re.search(r'\"[^\"]*[^\"]*\"', item)
                if index_range_obj:
                    index_range = index_range_obj.span()
                    item = item[0:index_range[0]]+item[index_range[0]+1:index_range[1]-1].replace(',', ',') + item[index_range[1]:]
                else:
                    break
            csvLine = item.split(',')
            writer.writerow(csvLine)
    print("保存文件成功,处理结束")

如果大家有更好的方法能解决英文逗号保持不变,不用用中文逗号替换,欢迎大佬留言交流~~~

你可能感兴趣的:(Python,vue)