我在工作中有一个小仪表板,它生成某些计算组的键和数量。用户还可以选择导出到CSV文件。
但是,它正在崩溃,因为一个计算组的键中有逗号。所以我需要把分号去掉,希望能以一种很好的方式打开。
这是我目前的代码:
from flask import Flask, render_template, request, make_response, Response
if 'export' in request.form.getlist('export'):
out = []
for k,v in result.items():
out.append(k + ';' + str(v) + '\n')
csv = ''.join(out)
response = make_response(csv)
cd = 'attachment; filename = LCRdrillback.csv'
response.headers['Content-Disposition'] = cd
response.mimetime='text/csv'
return response
该代码块中的分号过去是逗号。我需要如何调整它以使其对分号友好?这样就可以打开不同列中的键和值了?
我也在用烧瓶。
可以使用python模块csv轻松读取csv文件。您可以轻松设置分隔符。
阅读示例:
import csv
delimiter_type=';'
with open('file_name.csv', 'rb') as csv_file:
spamreader = csv.reader(csv_file, delimiter=delimiter_type, quotechar='|')
写作范例:
import csv
delimiter_type=';'
with open('file_name.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=delimiter_type,
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
据我所知,问题是如何在电子表格应用程序中打开文件。我认为在Windows上运行的所有应用程序默认情况下都使用双引号作为文本分隔符(当然是MS Excel和LibreOffice),这样您就可以跳过该字段,并坚持文件的经典逗号分隔符。示例:"subfield d1, subfield d2", field d2, field d3
。在Unix上,我没有尝试过,但是我相信Unix风格的转义会起作用:subfield d1\,subfield d2,field d2
。我不认为电子表格应用程序会很好地打开一个没有逗号分隔的csv文件,而不通过“文本导入”过程。