import ctypes import os import platform import sys def get_free_space_mb(folder): """ Return folder/drive free space (in bytes) """ if platform.system()=='Windows': free_bytes=ctypes.c_ulonglong(0) ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes)) return free_bytes.value/1024/1024/1024 else: st=os.statvfs(folder) return st.f_bavail * st.f_frsize/1024/1024 print(get_free_space_mb('C:\\'),'GB')
方法2:
import win32com.client as com def TotalSize(drive): """ Return the TotalSize of a shared drive [GB]""" try: fso=com.Dispatch("scripting.FileSystemObject") drv=fso.GetDrive(drive) return drv.TotalSize/2**30 except: return 0 def FreeSpace(drive): """ Return the FreeSpace of a shared drive [GB]""" try: fso=com.Dispatch("scripting.FileSystemObject") drv=fso.GetDrive(drive) return drv.FreeSpace/2**30 except: return 0 workstations=['dolphins'] print ('Hard drive sizes:') for compName in workstations: drive='\\\\' + compName + '\\c$' print ('************************************************* ') print (compName) print ('TotalSize of %s=%f GB' % (drive, TotalSize(drive))) print ('FreeSpace on %s=%f GB' % (drive, FreeSpace(drive))) print ('************************************************* ')
运行效果如下图: