[CPyUG] 请问如何获得磁盘大小

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] 请问如何获得磁盘大小

ream D
 python如何获得磁盘大小啊?os.path.getsize()和os.stat()只能获得文件大小啊?有什么方法可以获得磁盘(c,d,e)盘的大小呢?win32com可以吗?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 请问如何获得磁盘大小

tommy(小包)
http://www.javaeye.com/topic/630045

在 2010年4月16日 下午2:21,ream D <dream.python.org@gmail.com>写道:
 python如何获得磁盘大小啊?os.path.getsize()和os.stat()只能获得文件大小啊?有什么方法可以获得磁盘(c,d,e)盘的大小呢?win32com可以吗?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN



--
没有翅膀不算天使!

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 请问如何获得磁盘大小

hongqing lv
os.popen("""wmic logicaldisk where "caption='c:'" get size /value""").read()

在 2010年4月16日 下午2:26,tommy <[hidden email]>写道:
http://www.javaeye.com/topic/630045

在 2010年4月16日 下午2:21,ream D <dream.python.org@gmail.com>写道:

 python如何获得磁盘大小啊?os.path.getsize()和os.stat()只能获得文件大小啊?有什么方法可以获得磁盘(c,d,e)盘的大小呢?win32com可以吗?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN



--
没有翅膀不算天使!

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 请问如何获得磁盘大小

Zhongwei Sun
如果你是在 Windows 上, 下面的功能足够。
用 win32com 也可以, 不过为了这个功能单独安装一个 win32com 不值得。
Linux 下的我没有写完,你可以试一试上面兄弟的链接。

# -*- coding: utf-8 -*-

import os
import platform
import ctypes

def get_free_space(folder):
    """
    Return folder/drive free space (in bytes)
    """
    if platform.system() == 'Windows':
        free_bytes = ctypes.c_ulonglong(0)
        try:
            ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder),
None, None, ctypes.pointer(free_bytes))
        except AttributeError:
            ctypes.windll.kernel32.GetDiskFreeSpaceExA(ctypes.c_wchar_p(folder),
None, None, ctypes.pointer(free_bytes))
        return free_bytes.value
    else:
        # TODO: linux 下未测试通过
        # platform.system() == 'Linux'
        return os.stavfs(folder).f_bfree

def get_total_space(folder):
    '''
    Return folder/drive free space (in bytes)
    '''
    if platform.system() == 'Windows':
        total_bytes = ctypes.c_ulonglong(0)
        try:
            ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder),
None, ctypes.pointer(total_bytes), None)
        except AttributeError:
            ctypes.windll.kernel32.GetDiskFreeSpaceExA(ctypes.c_wchar_p(folder),
None, ctypes.pointer(total_bytes), None)
        return total_bytes.value
    else:
        # TODO: linux 下未测试通过
        # platform.system() == 'Linux'
        return os.stavfs(folder).f_blocks

if __name__ == '__main__':
    s = get_free_space('c:\\')
    print s / (1024 * 1024)
    t = get_total_space('c:\\')
    print t / (1024 * 1024)

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 请问如何获得磁盘大小

Zandy
linux df -h 不就完了

import os
os.system("df -h")

在 2010年4月16日 下午6:07,Zhongwei Sun <[hidden email]>写道:
如果你是在 Windows 上, 下面的功能足够。
用 win32com 也可以, 不过为了这个功能单独安装一个 win32com 不值得。
Linux 下的我没有写完,你可以试一试上面兄弟的链接。

# -*- coding: utf-8 -*-

import os
import platform
import ctypes

def get_free_space(folder):
   """
   Return folder/drive free space (in bytes)
   """
   if platform.system() == 'Windows':
       free_bytes = ctypes.c_ulonglong(0)
       try:
           ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder),
None, None, ctypes.pointer(free_bytes))
       except AttributeError:
           ctypes.windll.kernel32.GetDiskFreeSpaceExA(ctypes.c_wchar_p(folder),
None, None, ctypes.pointer(free_bytes))
       return free_bytes.value
   else:
       # TODO: linux 下未测试通过
       # platform.system() == 'Linux'
       return os.stavfs(folder).f_bfree

def get_total_space(folder):
   '''
   Return folder/drive free space (in bytes)
   '''
   if platform.system() == 'Windows':
       total_bytes = ctypes.c_ulonglong(0)
       try:
           ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder),
None, ctypes.pointer(total_bytes), None)
       except AttributeError:
           ctypes.windll.kernel32.GetDiskFreeSpaceExA(ctypes.c_wchar_p(folder),
None, ctypes.pointer(total_bytes), None)
       return total_bytes.value
   else:
       # TODO: linux 下未测试通过
       # platform.system() == 'Linux'
       return os.stavfs(folder).f_blocks

if __name__ == '__main__':
   s = get_free_space('c:\\')
   print s / (1024 * 1024)
   t = get_total_space('c:\\')
   print t / (1024 * 1024)

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN



--
-- best regards!
-- by Zandy

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp