python生成的文件大嗎

在資料庫中存儲時,使用 Bytes 更精確,可擴展性和靈活性都很高。

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

1. 注意事項與測試代碼
1.需要考慮 sizeInBytes 為 None 的場景。
2.除以 1024.0 而非 1024,避免丟失精度。

實現的函數為 getSizeInMb(sizeInBytes),通用的測試代碼為

def getSizeInMb(sizeInBytes):return 0def 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.適合於用返回值參與計算

?

12

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 suggestedreturn 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實現根據文件名獲取文件大小和路徑

怎麼在Excel中運行python腳本?這個問題由來已久,很多pythoner都希望直接用python控制Excel,但是只能從外部調用,有沒有一個VBA的東西可以直接在Excel中運行呢?答案是有,DataNitro就是這么一個東西,看看下面Excel中的界面,他就是了,可以直接點擊『run'來運行一個Python腳本。下面我們來看看它是如何安裝與配置的。
先安裝python2.7,其他版本不知道行不行,但是這個肯定行,然後配置環境變數,保證python在該環境中,打開開始菜單,找到計算機,然後右鍵單擊它,選擇【屬性】
找到高級系統設置
找到環境變數,點擊該按鈕,打開環境變數設置窗口
找到Path系統變數,然後點擊【編輯】
在這里,確保python的安裝目錄在,沒有的話,添加進去
下面就可以安裝該插件了,去官網下載一個;或者網路一下,各大下載網站都有
雙擊即可安裝,安裝過程就是一路點擊』下一步,不過有一步需要注意
在這里,不要勾選python,如果通過這種方式安裝python,你原先安裝的python就無法使用了
最後安裝完成,打開Excel就可以看到datanitro了

❸ python3中為什麼os.path.getsize()獲取的大小和windows資源管理器里文件大小不一致

os.path.getsize()返回的是path的大小,path如果是一個文件,那麼就是文件大小;如果是文件夾,那麼就是文件夾大小,文件夾大小是指文件夾這個數據結構在文件系統中佔用的大小,NTFS文件系統中一個簇通常是4096位元組,一個文件夾佔用一個簇,所以NTFS中任何一個文件夾的大小都是4096位元組。

❹ 用Python語言實現計算某個文件夾下所有文件的大小,並將結果果輸出到屏幕上

importos
list=os.listdir(r"./文件夾名")
foriinlist:
print(os.path.getsize(i))

❺ python 在不解壓的情況下,怎麼得知壓縮包裡面文件的大小呢

可以使用 tarfile 模塊在不解壓的情況下查看壓縮包里文件的內大小,代碼如容下:

#coding=utf8

importtarfile
importos

tar=tarfile.open('G:/test/abc.tar.gz','r:gz')

fortiintar:
ifti.isreg():
print(ti.name,ti.size)

❻ python 怎麼判斷文件的大小

importos

print('%dBytes'%(os.path.getsize(r'c:xxx.txt')))

❼ python如何讀取文件大小

python讀取文件大小的代碼如下:

[python] view plainimport os

from os.path import join, getsize

def getdirsize(dir):

size = 0L

for root, dirs, files in os.walk(dir):

size += sum([getsize(join(root, name)) for name in files])

return size

if '__name__' == '__main__':

filesize = getdirsize(r'c:\windows')

print 'There are %.3f' % (size/1024/1024), 'Mbytes in c:\\windows'

❽ python怎麼得到gz文件中被壓縮的文件的大小

有直接讀寫gz文件的gzip庫。。。
但沒有這個方法。。。

❾ Python 讀取文件夾將裡面的圖片處理成想要的大小並保存在個指定位置

fromPILimportImage
importos.path
importglob
defconvertjpg(jpgfile,outdir,width=1280,height=720):
img=Image.open(jpgfile)
new_img=img.resize((width,height),Image.BILINEAR)
new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
forjpgfileinglob.glob("D:/python/*.jpg"):
convertjpg(jpgfile,"D:/newfile")

convertjpg調用時可以有四個參數,如convertjpg(jpgfile,"D:/newfile",800,600)

Image open了jpg用完後版要權不要close?

❿ python中怎麼查看文件大小

print(os.path.getsize("C:\Users\Administrator\Desktop\1234.txt")) 回去文件大小,以位元組為單位