【Python、文件】Python解析上传文件
发布日期:2022-02-23 07:42:42 浏览次数:12 分类:技术文章

本文共 1190 字,大约阅读时间需要 3 分钟。

在开发的过程中几乎都会遇到上传文件的这类操作,小编第一次的接触的时候也很茫然 于是就去翻阅资料整理了完成了需求,并且把它整理成笔记 供大家一起探讨学习

首先需求是 用户需要批量支付或者批量上传东西的时候需要下载自己平台的模板 填写信息上传文件。

我需要前端传来的文件 首先肯定是post请求。通过请求体传参的。第一件事我们应该获取post中的文件 

class Test:        def __init__(self, request,headers)        self.request = request        self.headers =[文件里面标题字段]  # 这里的self.headers可以根据前端文件传来的标题自定义 最好不要写死    def parse(self):        self.fp = self.request.FILES.get("file")        if fp is None:            raise AbortRequest("请先选择文件再点击上传")        content = self.fp.read()———返回的是字符串字节流

然后读出来文件的内容 再用 xlrd.open_workbook 进行解析。把用 read() 读取出来的不知道什么意义的数据(字符串或者字节流)交给 xlrd.open_workbook 的 file_contents 参数传入,就会被 xlrd 模块帮你转换成有结构的数据,比如一个个列表套着列表。 

# 打开文件读取数据data = xlrd.open_workbook(file_contents=content)# 通过索引顺序获取sheet = data.sheet_by_index(0)

如果有文件格式的要求 比如说要求文件是xls 或者xlsx的文件

  然后可以查看行数

nrows = sheet.nrows———变量.nrows 查看行数 变量.row_values() 获取第几行内容headers = []for item in sheet.row_values(0):    headers.append(item)    if headers != self.headers:        raise AbortRequest("导入数据标题行和模板不相同")if nrows <= row:    raise AbortRequest("请填写内容后再上传")# 循环excel表内的内容for index in range(row, nrows):    # 查看获取第几行内容    item = sheet.row_values(index)    results.append(item)return results

 

转载地址:https://blog.csdn.net/weixin_42781544/article/details/90766499 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:django-入门基础
下一篇:python工厂函数

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月17日 01时36分30秒