python pathlib模块的学习

更新时间:2020-08-16 23:15:56

跳转

之前在这篇写过,对pathlib的学习,慢慢地就想使用pathlib了
而且下面的介绍,附带了不使用django的imagefield而多图上传的方法

pathlib以面对对象的风格冲走了我内心的os以及with..open
        for img in request.data.getlist('images'):
            get_type = request.data.get('types', '')
            # 获取文件后缀名
            form = pathlib.PurePosixPath(img.name).suffix
            if form not in ['.jpg', '.png', '.bmp', '.gif', '。webp', '.svg']:
                return Response({'error': f'不允许上传{form}类型'}, status=status.HTTP_401_UNAUTHORIZED)
            save_path = pathlib.Path(settings.MEDIA_ROOT) / get_type / f'{uuid.uuid4().hex}{pathlib.Path(form)}'
            if not pathlib.Path(settings.MEDIA_ROOT).is_dir():
                pathlib.Path(settings.MEDIA_ROOT).mkdir(parents=True)
            for content in img.chunks():
                save_path.write_bytes(content)
                ready_save.append((pathlib.Path(settings.MEDIA_URL) / get_type /
                                   f'{save_path.name}').as_posix())
                save_path = pathlib.Path(settings.MEDIA_ROOT) / get_type / f'{uuid.uuid4().hex}{pathlib.Path(form)}'

写入文件,具体是write_bytes 写入二进制文件,相当于'wb'
其实还有个write_text 相当于'w',可以写入文本

但是用pathlib创建文件读写文件的时候有个坑

此处内容需要评论回复后方可阅读。

可以去

django 不使用imagefield 实现多图上传(大容量图片2.5MB以上)

更新时间:2021-04-29 08:59:12

跳转

看优化版

版权属于:染念
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2021年04月29日 09:00
7


183 文章数
695 评论量
4 分类数
186 页面数
已在风雨中度过 7年298天4小时13分
目录
来自 《如何使用pathlib优雅地抛弃open写入》
© 2024 染念的笔记
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部
© 2024 染念的笔记
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部