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

本文共 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工厂函数

发表评论

最新留言

很好
[***.229.124.182]2023年06月05日 07时11分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

mysql db模块下载_亲测:MySQL安装与python下的MySQLdb使用(附软件与模块包) 2019-12-01 13:16:37
监控mysql状态_监控mysql状态脚本 2019-12-01 13:16:37
qt 调用createfile打开串口_在Ubuntu中的串口通信(1)-串口设备读写权限问题 2019-12-01 13:16:38
bootstrap连接mysql并修改_较简单的修改和添加功能(链接数据库) 2019-12-01 13:16:38
richedit 获取文本长度_小函数、大作用,常用文本函数和其他函数组合使用技巧解读... 2019-12-01 13:16:38
python漫画滤镜怎么实现的_python实现图片转换成素描和漫画格式 2019-12-01 13:16:35
linux uvc协议_linux 使用 uvc 摄像头 2019-12-01 13:16:35
classpath中没有加入合适的mysql_jdbc驱动_新能源汽车中预充电阻的选型及分析 2019-12-01 13:16:36
go 监听windows系统信号_gocron - 定时任务管理系统 2019-12-01 13:16:36
java8根据某个字段过滤并拼接_侠说java8--Stream流操作学习笔记,都在这里了 2019-12-01 13:16:36
js如何在当前页面加载springmvc返回的页面_Spring 和 Spring MVC经典面试题及答案 2019-12-01 13:16:36
mysql数据库5.5_MySQL数据库安装Version5.5 2019-12-01 13:16:36
++递归 字符串全排列_一组数据的全排列 2019-12-01 13:16:34
2110n操作使用说明_罗茨风机使用维护大全?故常处理?操作说明 2019-12-01 13:16:34
假设检验_科学统计做决策―浅析统计方法假设检验 2019-12-01 13:16:34
平均数和均值一样吗_你真的清晰的知道什么是投资高回报吗? 2019-12-01 13:16:35
matlab 韩明距离_使用Matlab计算各种距离Distance 2019-12-01 13:16:35
cf英文名字格式好看的_cf好看的英语名字格式,有你想要的! 2019-12-01 13:16:35
python用户输入的是q么_Python基础(一):程序输入输出、判断合法用户、编写判断成绩的程序... 2019-12-01 13:16:35
苹果7pid怎么设置_苹果手机铃声怎么设置 2019-12-01 13:16:33