Dav*_*ave 2 python windows samba
有没有人知道如何通过Python 2.6及其标准库获取Windows(Samba)共享上的可用空间量?(也在Windows上运行)
例如
>>> os.free_space("\\myshare\folder") # return free disk space, in bytes
1234567890
Run Code Online (Sandbox Code Playgroud)
如果PyWin32可用:
free, total, totalfree = win32file.GetDiskFreeSpaceEx(r'\\server\share')
Run Code Online (Sandbox Code Playgroud)
当自由是自由空间提供给当前用户量,totalfree是自由空间的总金额.相关文档:PyWin32文档,MSDN.
如果不保证PyWin32可用,那么对于Python 2.5及更高版本,stdlib中有ctypes模块.相同的功能,使用ctypes:
import sys
from ctypes import *
c_ulonglong_p = POINTER(c_ulonglong)
_GetDiskFreeSpace = windll.kernel32.GetDiskFreeSpaceExW
_GetDiskFreeSpace.argtypes = [c_wchar_p, c_ulonglong_p, c_ulonglong_p, c_ulonglong_p]
def GetDiskFreeSpace(path):
if not isinstance(path, unicode):
path = path.decode('mbcs') # this is windows only code
free, total, totalfree = c_ulonglong(0), c_ulonglong(0), c_ulonglong(0)
if not _GetDiskFreeSpace(path, pointer(free), pointer(total), pointer(totalfree)):
raise WindowsError
return free.value, total.value, totalfree.value
Run Code Online (Sandbox Code Playgroud)
可能会做得更好,但我并不熟悉ctypes.
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |