Computer368106 views
高校倫理1440106 views
高校物理160203 views
数学講師2886227 views
小学算数1200427 views
教育149510 views
高校日本史190571 views
いろは3010814 views
中学英語811710 views
高校化学2924392 views
Help
Tools
NewsSpreadsheetCalendarSlidesTier ListPen ToolIllustrationCrayonPixel ArtASCII ArtPerspectiveEndless StairsGraphMind MapER DiagramFamily TreeMemeCurved TextImage EditorMosaicRetro FilterPencil SketchOCR/HighlighterMakeup EditorFaviconVideo TrimmerScrolling VideoVideo TitleColor PickerColor ExtractorBonfireFireworksWater RippleWater SplashBreaking GlassWood GrainMarble TextureCSS ButtonIcon MakerBar ChartGrouped Bar ChartStacked Bar ChartPie ChartLine ChartArea ChartStacked Area ChartScatter Plot3D Bar Chart3D Pie ChartBar Chart RaceBubble ChartPopulation PyramidPictogramEarningsCandlestick ChartInvestment RiskMortgage SimulatorCalculatorMatrix CalculatorFunction GraphPolynomial ExpansionVenn DiagramField VisualizerRubik's Cube Group TheoryTraveling SalesmanVoronoi and DelaunayFractalColumn ArithmeticDraw Math FiguresArithmetic AnimationArithmetic Word ProblemsCounting with Tree DiagramsCube NetsCross SectionsMotion PathMechanicsWavesLight and LensesThermodynamicsHow Semiconductors WorkMolecular StructuresAtomic OrbitalsElectrochemical CellsChemical EquilibriumCrystal LatticesBuffer pHComplex IonsDNA Double HelixCell DivisionMembrane ChannelsNerve ImpulseRock ClassificationWeatherConstellationsSolar and Lunar Eclipses3D ModelingFloor PlanSeismic StructuresIntersection TurnMaglevCooking AnimationOrigamiLive Viewer CountGeoJSON MapRailway MapPopulation MapCrime MapLand Price MapSchool MapShrine and Castle MapHouse of Representatives MapWord MapSolitaireReversiHakoiri MusumeChessHamburgerRippleSlide Puzzle MakerNeon PinballNovel MakerJapanese Typing PracticePiano Score EditorMusic Theory

English

Python でファイルサイズを取得する

ファイルサイズを取得するには os.path.getsize() または pathlib.Path.stat() を使う。

import os

size = os.path.getsize('data.txt')
print(size)  # バイト数

os.path.getsize() はファイルサイズをバイト単位で返す。ファイルが存在しない場合は FileNotFoundError が発生する。

pathlib を使う方法

pathlib では stat() メソッドでファイルの情報を取得し、st_size 属性でサイズを得る。

from pathlib import Path

path = Path('data.txt')
size = path.stat().st_size
print(size)  # バイト数

人間が読みやすい形式に変換する

バイト数を KB や MB などの単位に変換する関数を作ると便利だ。

def format_size(size_bytes):
    for unit in ['B', 'KB', 'MB', 'GB', 'TB']:
        if size_bytes < 1024:
            return f'{size_bytes:.1f} {unit}'
        size_bytes /= 1024
    return f'{size_bytes:.1f} PB'

import os
size = os.path.getsize('video.mp4')
print(format_size(size))  # 例: 256.5 MB

ディレクトリの合計サイズを取得する

ディレクトリ内のすべてのファイルの合計サイズを取得するには、再帰的にファイルを走査する。

from pathlib import Path

def get_directory_size(path):
    total = 0
    for file in Path(path).rglob('*'):
        if file.is_file():
            total += file.stat().st_size
    return total

size = get_directory_size('mydir')
print(f'{size / (1024 ** 2):.2f} MB')

os.stat を使う方法

os.stat() を使うと、ファイルサイズ以外にも様々な情報を取得できる。

import os

stat_info = os.stat('data.txt')

print(stat_info.st_size)   # ファイルサイズ(バイト)
print(stat_info.st_mtime)  # 最終更新時刻(UNIX時間)
print(stat_info.st_mode)   # ファイルモード(パーミッション)