最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實現(xiàn)文件大小輸出

 更新時間:2016年01月11日 09:04:59   作者:jerrylsxu  
在數(shù)據(jù)庫中存儲時,使用 Bytes 更精確,可擴展性和靈活性都很高。下面通過本文給大家介紹基于Python實現(xiàn)文件大小輸出,對python文件輸出相關(guān)知識感興趣的朋友一起學習吧

在數(shù)據(jù)庫中存儲時,使用 Bytes 更精確,可擴展性和靈活性都很高。

輸出時,需要做一些適配。

1. 注意事項與測試代碼

1.需要考慮 sizeInBytes 為 None 的場景。

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

實現(xiàn)的函數(shù)為 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 之間,輸出時統(tǒng)一轉(zhuǎn)為 MB 是不錯的選擇。

弊端:

1.輸出精度過高,比如 10240000 Bytes 計算結(jié)果為 10240000 -> 9.765625

2.文件大小有限制,小于 1 MB 或 G 級數(shù)據(jù)不適合該方式展示

優(yōu)勢:

1.適合于用返回值參與計算

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

3. 以 MB 為單位保留 1 位小數(shù) -- 返回 str

處于精度問題考慮,可以選擇保留 1 位小數(shù)。

def getSizeInMb(sizeInBytes):

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

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

二者均能正確執(zhí)行,但后者容易被誤判為執(zhí)行只有一個參數(shù) number 的函數(shù),導(dǎo)致難以判斷的錯誤。

3. 以 MB 為單位保留至多 1 位小數(shù) -- 返回 str

大多數(shù)操作系統(tǒng)一般展示至多 1 位小數(shù)

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 使用單數(shù)形式。其他 0/小數(shù) 均使用復(fù)數(shù)形式。涉及 bytes 級別

2. 精度方面,KB 及以上級別,保留 1 位小數(shù)。bytes 保留至多 1 位小數(shù)。

這種處理規(guī)則,不適合于小數(shù)十分位為 0 的情況,比如 10.0 bytes,10.01 bytes。輸入結(jié)果均為 10 bytes。

其他情況下,精度均不存在問題。

測試數(shù)據(jù)與結(jié)果如下圖

以上內(nèi)容給大家介紹了基于Python實現(xiàn)文件大小輸出的相關(guān)知識,希望本文分享對大家有所幫助。

相關(guān)文章

  • python迭代器自定義類的具體方法

    python迭代器自定義類的具體方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python迭代器自定義類的具體方法,對此有興趣的朋友們可以學習下。
    2021-03-03
  • Python實現(xiàn)生成簡單的Makefile文件代碼示例

    Python實現(xiàn)生成簡單的Makefile文件代碼示例

    這篇文章主要介紹了Python實現(xiàn)生成簡單的Makefile文件代碼示例,本文給出了兩段實現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • Python中常用的高階函數(shù)實例詳解

    Python中常用的高階函數(shù)實例詳解

    高階函數(shù)指的是能接收函數(shù)作為參數(shù)的函數(shù)或類,這篇文章主要介紹了Python中常用的高階函數(shù),通過實例文字解釋相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2020-02-02
  • Python中unittest用法實例

    Python中unittest用法實例

    這篇文章主要介紹了Python中unittest用法,較為詳細的講述了unittest中相關(guān)函數(shù)的用法及完整實例,需要的朋友可以參考下
    2014-09-09
  • Python3.6連接Oracle數(shù)據(jù)庫的方法詳解

    Python3.6連接Oracle數(shù)據(jù)庫的方法詳解

    這篇文章主要介紹了Python3.6連接Oracle數(shù)據(jù)庫的方法,較為詳細的分析了cx_Oracle模塊安裝及Python3.6使用cx_Oracle模塊操作Oracle數(shù)據(jù)庫的具體操作步驟與相關(guān)注意事項,需要的朋友可以參考下
    2018-05-05
  • 基于Python編寫簡單的網(wǎng)絡(luò)測試工具

    基于Python編寫簡單的網(wǎng)絡(luò)測試工具

    這篇文章主要為大家詳細介紹了如何基于Python編寫一個簡單的網(wǎng)絡(luò)測試工具,可以測試網(wǎng)絡(luò)的下載速度,上傳速度和延遲,感興趣的可以了解下
    2025-02-02
  • Python實現(xiàn)批量翻譯CAD圖紙

    Python實現(xiàn)批量翻譯CAD圖紙

    這篇文章主要為大家詳細介紹了如何通過Python實現(xiàn)批量翻譯CAD圖紙,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以學習一下
    2023-12-12
  • python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀

    python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀

    這篇文章主要介紹了python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案

    python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案

    今天小編就為大家分享一篇python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • django foreignkey外鍵使用的例子 相當于left join

    django foreignkey外鍵使用的例子 相當于left join

    今天小編就為大家分享一篇django foreignkey外鍵使用的例子 相當于left join,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

内乡县| 兴仁县| 东台市| 溧水县| 宜君县| 黎城县| 交城县| 东城区| 玛多县| 昌都县| 湄潭县| 三穗县| 石门县| 淮南市| 普洱| 陇川县| 泸州市| 永仁县| 当阳市| 东丰县| 蓝田县| 嘉兴市| 沁水县| 泸州市| 蛟河市| 若羌县| 柳江县| 凉城县| 石泉县| 鄂温| 城口县| 巴东县| 元朗区| 新昌县| 县级市| 丰城市| 赤城县| 虞城县| 泸州市| 元氏县| 资溪县|