广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python实现文件大小输出
  • 563
分享到

基于Python实现文件大小输出

文件大小Python 2022-06-04 19:06:01 563人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

在数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。 输出时,需要做一些适配。 1. 注意事项与测试代码 1.需要考虑 sizeInBytes 为 None 的场景。 2.除以 1024

数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。

输出时,需要做一些适配。

1. 注意事项与测试代码

1.需要考虑 sizeInBytes 为 None 的场景。

2.除以 1024.0 而非 1024,避免丢失精度。

实现的函数为 getSizeInMb(sizeInBytes),通用的测试代码为


def getSizeInMb(sizeInBytes):
return 0
def test(sizeInBytes):
print '%s -> %s' % (sizeInBytes, getSizeInMb(sizeInBytes))
test(None)
test(0)
test(10240000)
test(1024*1024*10) 

2. 以 MB 为单位输出 -- 返回 float

通常,电子书的大小在 1 - 50MB 之间,输出时统一转为 MB 是不错的选择。

弊端:

1.输出精度过高,比如 10240000 Bytes 计算结果为 10240000 -> 9.765625

2.文件大小有限制,小于 1 MB 或 G 级数据不适合该方式展示

优势:

1.适合于用返回值参与计算


def getSizeInMb(sizeInBytes):
return (sizeInBytes or 0) / (1024.0*1024.0) 

3. 以 MB 为单位保留 1 位小数 -- 返回 str

处于精度问题考虑,可以选择保留 1 位小数。

def getSizeInMb(sizeInBytes):

return '%.1f' % ((sizeInBytes or 0) / (1024.0*1024.0), ) # use 1-dimension tuple is suggested

返回值建议写成 '%.1f' % (number,) 而非 '%.1f' % (number)

二者均能正确执行,但后者容易被误判为执行只有一个参数 number 的函数,导致难以判断的错误。

3. 以 MB 为单位保留至多 1 位小数 -- 返回 str

大多数操作系统一般展示至多 1 位小数


def getSizeInMb(sizeInBytes):
sizeInMb = '%.1f' % ((sizeInBytes or 0) / (1024.0*1024.0), ) # use 1-dimension tuple is suggested
return sizeInMb[:-2] if sizeInMb.endswith('.0') else sizeInMb # python2.5+ required 

4. 自动选择最佳单位


def getSizeInNiceString(sizeInBytes):
"""
Convert the given byteCount into a string like: 9.9bytes/KB/MB/GB
"""
for (cutoff, label) in [(1024*1024*1024, "GB"),
(1024*1024, "MB"),
(1024, "KB"),
]:
if sizeInBytes >= cutoff:
return "%.1f %s" % (sizeInBytes * 1.0 / cutoff, label)
if sizeInBytes == 1:
return "1 byte"
else:
bytes = "%.1f" % (sizeInBytes or 0,)
return (bytes[:-2] if bytes.endswith('.0') else bytes) + ' bytes' 

算法说明:

1. 从英语语法角度,只有 1 使用单数形式。其他 0/小数 均使用复数形式。涉及 bytes 级别

2. 精度方面,KB 及以上级别,保留 1 位小数。bytes 保留至多 1 位小数。

这种处理规则,不适合于小数十分位为 0 的情况,比如 10.0 bytes,10.01 bytes。输入结果均为 10 bytes。

其他情况下,精度均不存在问题。

测试数据与结果如下图

查看图片

以上内容给大家介绍了基于Python实现文件大小输出的相关知识,希望本文分享对大家有所帮助。

--结束END--

本文标题: 基于Python实现文件大小输出

本文链接: https://www.lsjlt.com/news/15507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python实现文件大小输出
    在数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。 输出时,需要做一些适配。 1. 注意事项与测试代码 1.需要考虑 sizeInBytes 为 None 的场景。 2.除以 1024...
    99+
    2022-06-04
    文件大小 Python
  • python中如何输出文件大小
    python中输出文件大小的方法:1、在win操作系统中找到python程序目录;2、打开idle工具;3、在idle中新建一个shell脚本;4、输入“import os”指令导入os模块;5、通过“print(os.path.getsi...
    99+
    2022-10-24
  • Java如何实现判断并输出文件大小
    目录java判断并输出文件大小java计算文件大小三种方法及优缺点比较优缺点比较总结java判断并输出文件大小 有些地方需要判断用户上传的文件大小或者下载文件之类的地方,这个功能还是...
    99+
    2023-05-15
    Java判断文件大小 Java输出文件大小 Java输出文件
  • Java怎么实现判断并输出文件大小
    这篇文章主要介绍“Java怎么实现判断并输出文件大小”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么实现判断并输出文件大小”文章能帮助大家解决问题。java判断并输出文件大小有些地方需要判...
    99+
    2023-07-06
  • python基本文件操作(文件输入和输出
    文件输入输出中常用的文件对象方法:open : 返回一个新的文件对象,调用该对象的上的方法可对文件进行任何操作readline: 读取一行数据包括结尾的换行符在内write: 将数据写入文件中close: 关闭文件对象; 举例:读取E盘中的...
    99+
    2023-01-31
    文件 操作 python
  • QT基于TCP实现文件传输系统
    本文实例为大家分享了QT基于TCP实现文件传输系统的具体代码,供大家参考,具体内容如下 一、设计目标 1、发送端选择要传输的文件,进度条显示传输的进度,手动输入要传输的ip地址和端口...
    99+
    2022-11-13
    QT TCP文件传输 QT文件传输系统 QT传输系统
  • node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
    node.js版 遍历文件夹下最大的文件,并输出路径,大小 实现代码: function findmax(basepath){ //只能执行一次 if(findmax.s) r...
    99+
    2022-06-04
    遍历 文件夹 路径
  • 基于Python实现文本文件转Excel
    目录一、前言二、openpyxl模块1、安装2、简单操作三、文本文件转excel文件1、寻找规律2、开始转换补充一、前言 Excel文件是我们常用的一种文件,在工作中使用非常频繁。E...
    99+
    2022-11-11
  • Python基于文件内容实现查找文件功能
    目录文件查找操作glob 的介绍glob 的基本使用查找指定的文件基于文件内容查找文件该章节将学习关于文件查找的操作,大家都知道,无论是 Linux 系统还是 Windows 系统都...
    99+
    2022-11-11
  • 基于Python怎么实现文件分类器
    本篇内容主要讲解“基于Python怎么实现文件分类器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么实现文件分类器”吧!通过自定义需要整理的文件目录,将该目录下面的全部文件按照...
    99+
    2023-07-05
  • python实现大文本文件分割成多个小文件
    本文介绍一种将一个大的文本文件分割成多个小文件的方法 方法一: 1.读取文章所有的行,并存入列表中 2.定义分割成的小文本的行数 3.将原文本内容按一定行数依次写入小文件中 4.此方...
    99+
    2022-11-12
  • 基于Python实现骰子小游戏
    目录导语一、环境准备 二、代码展示三、效果展示导语 哈喽!大家晚上好,我是木木子吖,很久没给大家更新游戏代码的类型啦~ 骰子,是现在娱乐场所最常见的一种玩乐项目。一般骰子分...
    99+
    2023-02-28
    Python实现骰子游戏 Python骰子游戏 Python游戏
  • 基于Python实现文章信息统计的小工具
    目录前言程序主程序 main.py爬虫模块 spider.py持久化模块 store.py执行结果前言 博客园在个人首页有一个简单的博客数据统计,以博客园官方的首页为例: 但是这些...
    99+
    2023-02-14
    Python文章信息统计工具 Python信息统计工具 Python信息统计
  • 基于QT制作一个简易的传输文件小工具
    最近因为一个事情很恼火,因为办公需要用到企业微信,但是企业微信只能在一个电脑上登陆,所以当别人发文件给你的时候,你只能一个电脑接收,创建共享文件夹也很麻烦,每次都需要去访问,很麻烦。...
    99+
    2022-11-12
  • 基于Python实现交互式文件浏览器
    目录引子应用场景源代码源代码说明效果如下所示引子 在许多应用程序中,需要方便地查看特定文件夹中的所有图片,例如图库管理器、相册应用程序、图片编辑器等。如果手动浏览文件夹并查看每个文件...
    99+
    2023-05-18
    Python实现交互式文件浏览器 Python实现文件浏览器 Python文件浏览器 Python文件浏览
  • 基于Python实现对PDF文件的OCR识别
    最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。 1.安装tesser...
    99+
    2022-06-04
    文件 Python PDF
  • 基于Python制作一个文件去重小工具
    目录前言实现步骤补充前言 常常在下载网络素材时有很多的重复文件乱七八糟的,于是想实现一个去重的操作。 主要实现思路就是遍历出某个文件夹包括其子文件夹下面的所有文件,最后,将所有文件...
    99+
    2022-11-13
  • python如何实现大文本文件分割成多个小文件
    小编给大家分享一下python如何实现大文本文件分割成多个小文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂...
    99+
    2023-06-14
  • 基于Python实现炸弹人小游戏
    目录前言效果展示开发工具环境搭建原理简介主要代码前言 今天用Python实现的是一个炸弹人小游戏,废话不多说,让我们愉快地开始吧~ 效果展示 开发工具 Python版本: 3.6....
    99+
    2022-11-12
  • golang如何实现大文件传输
    在 Golang 中,可以使用 io 和 os 包来实现大文件的传输。以下是一种可能的实现方式: 首先,需要创建一个服务器端和一个客...
    99+
    2023-10-21
    golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作