【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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月17日 01时36分30秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
reactos操作系统实现(101)
2019-04-28
sigmoid函数求导与自然指数
2019-04-28
Android培训班(64)dex文件格式5
2019-04-28
Android培训班(65)dex文件打开
2019-04-28
MIT的《深度学习》精读(11)
2019-04-28
Android培训班(66)dex文件打开流程
2019-04-28
Android培训班(67)dex文件打开流程
2019-04-28
Android培训班(68)dex文件打开流程
2019-04-28
神经网络的双曲线正切激活函数
2019-04-28
MIT的《深度学习》精读(12)
2019-04-28
Android培训班(69)Dex文件里类定义
2019-04-28
Android培训班(70)Dex文件里类定义dvmDefineClass
2019-04-28
Android培训班(71)Dex文件里类定义dvmDefineClass
2019-04-28
MIT的《深度学习》精读(13)
2019-04-28
MIT的《深度学习》精读(14)
2019-04-28
Android培训班(72)Dex文件里类定义dvmDefineClass
2019-04-28
Android培训班(73)Dex文件里类定义dvmDefineClass
2019-04-28
Android培训班(74)Dalvik虚拟机的FindClass函数
2019-04-28
MIT的《深度学习》精读(15)
2019-04-28
人工智能的软件研发管理系统
2019-04-28