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("保存文件成功,处理结束")
如果大家有更好的方法能解决英文逗号保持不变,不用用中文逗号替换,欢迎大佬留言交流~~~