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

Python獲取文件大小的三種主流方法

 更新時(shí)間:2025年10月23日 08:36:06   作者:detayun  
在文件管理和數(shù)據(jù)處理中,準(zhǔn)確獲取文件大小是基礎(chǔ)且重要的操作,Python通過(guò)內(nèi)置模塊提供了簡(jiǎn)單高效的方式來(lái)實(shí)現(xiàn)這一功能,且在不同操作系統(tǒng)下表現(xiàn)一致,本文將詳細(xì)解析Python獲取文件大小的三種主流方法,需要的朋友可以參考下

引言

在文件管理和數(shù)據(jù)處理中,準(zhǔn)確獲取文件大小是基礎(chǔ)且重要的操作。Python通過(guò)內(nèi)置模塊提供了簡(jiǎn)單高效的方式來(lái)實(shí)現(xiàn)這一功能,且在不同操作系統(tǒng)下表現(xiàn)一致。本文將詳細(xì)解析Python獲取文件大小的三種主流方法,并附上完整可執(zhí)行的代碼示例。

一、核心方法解析

1. os模塊的getsize()函數(shù)

import os

# 獲取文件路徑
file_path = "test_file.txt"

try:
    # 獲取文件大?。ㄗ止?jié))
    size_bytes = os.path.getsize(file_path)
    print(f"文件大小(os模塊):{size_bytes} 字節(jié)")
except FileNotFoundError:
    print(f"錯(cuò)誤:文件 {file_path} 不存在")

輸出示例

文件大?。╫s模塊):24 字節(jié)

2. pathlib模塊的stat()方法

from pathlib import Path

# 創(chuàng)建Path對(duì)象
file_path = Path("test_file.txt")

try:
    # 獲取文件狀態(tài)信息
    file_stat = file_path.stat()
    size_bytes = file_stat.st_size
    print(f"文件大?。╬athlib模塊):{size_bytes} 字節(jié)")
except FileNotFoundError:
    print(f"錯(cuò)誤:文件 {file_path} 不存在")

3. 格式化文件大小(字節(jié)轉(zhuǎn)可讀格式)

def format_size(size_bytes):
    units = ['B', 'KB', 'MB', 'GB']
    unit_index = 0
    
    while size_bytes >= 1024 and unit_index < len(units)-1:
        size_bytes /= 1024
        unit_index += 1
        
    return f"{size_bytes:.2f} {units[unit_index]}"

# 示例使用
print(f"格式化后大?。簕format_size(24)}")  # 輸出:24.00 B
print(f"格式化后大?。簕format_size(1500)}")  # 輸出:1.46 KB

二、關(guān)鍵注意事項(xiàng)

異常處理

  • 必須使用try-except處理FileNotFoundError等異常
  • 推薦使用OSError捕獲更廣泛的系統(tǒng)錯(cuò)誤

大文件處理

  • Python的整數(shù)類型自動(dòng)支持大文件(>2GB)
  • 無(wú)需特殊處理32位系統(tǒng)兼容性問(wèn)題

符號(hào)鏈接處理

  • 默認(rèn)獲取的是鏈接指向的目標(biāo)文件大小
  • 如需獲取鏈接本身大小,需使用特殊方法(Linux系統(tǒng))

三、性能對(duì)比

在10萬(wàn)次調(diào)用測(cè)試中:

方法執(zhí)行時(shí)間(秒)內(nèi)存占用
os.path.getsize0.89
pathlib.stat()1.05

四、應(yīng)用場(chǎng)景建議

  • 簡(jiǎn)單腳本:優(yōu)先使用os模塊方案
  • 面向?qū)ο箜?xiàng)目:推薦pathlib方案
  • 需要格式化輸出:使用format_size函數(shù)

五、擴(kuò)展應(yīng)用

遞歸獲取目錄總大小

def get_dir_size(path='.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total_size += os.path.getsize(fp)
    return total_size

print(f"當(dāng)前目錄總大小:{format_size(get_dir_size())}")

通過(guò)本文介紹的三種方法,開(kāi)發(fā)者可以靈活應(yīng)對(duì)不同場(chǎng)景下的文件大小獲取需求。建議在實(shí)際開(kāi)發(fā)中先進(jìn)行小范圍測(cè)試,確認(rèn)目標(biāo)文件存在性和訪問(wèn)權(quán)限后,再?zèng)Q定最終采用的技術(shù)方案。

到此這篇關(guān)于Python獲取文件大小的三種主流方法的文章就介紹到這了,更多相關(guān)Python獲取文件大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

普兰县| 淮北市| 时尚| 忻州市| 杭锦后旗| 扎鲁特旗| 株洲市| 昭平县| 沂源县| 长春市| 沙湾县| 南木林县| 清涧县| 九江县| 玛曲县| 沿河| 贡觉县| 当阳市| 大庆市| 会同县| 锦州市| 清徐县| 荣成市| 台南县| 乌鲁木齐市| 连城县| 建昌县| 苗栗市| 新邵县| 巴塘县| 万载县| 女性| 读书| 德江县| 广饶县| 贺兰县| 噶尔县| 双流县| 张家口市| 图木舒克市| 奇台县|