# -*- coding: UTF-8 -*-

from ctypes import *

import os
import win32file

def GetDiskSize(strDrive):
        sectorsPerCluster, bytesPerSector, numFreeClusters, totalNumClusters = win32file.GetDiskFreeSpace(strDrive)

#可用空间
        freeSpace = (numFreeClusters * sectorsPerCluster * bytesPerSector)

#总容量
        totalSpace =(sectorsPerCluster * bytesPerSector * totalNumClusters)
        return freeSpace, totalSpace

#1.检测磁盘容量
def DiskSpaceFunc():
        strDrive = raw_input("请输入需检测磁盘(例如C、D、E、F):")
        freeSpace, totalSpace = GetDiskSize(strDrive)
        print "磁盘总容量:" + bytes(totalSpace / 1024 / 1024 / 1024) + "GB"
        return

#2.设置阈值提示
def SetThreHint():
        print "设置阈值提示"
        strDrive = raw_input("请输入需检测磁盘(例如C、D、E、F):")
        threValue = raw_input("请设置阈值(MB):")
        freeSpace, totalSpace = GetDiskSize(strDrive)
        if (freeSpace < int(threValue) * 1024 * 1024) :
                print "磁盘剩余空间小于设定阈值:" + bytes(threValue) + "MB,当前剩余磁盘空间:" + bytes(freeSpace / 1024/ 1024) + "MB"
        else:
                print "当前剩余空间超过设定阈值,当前剩余空间:" + bytes(freeSpace / 1024/ 1024)
                
        return

#统计目录中文件数量
def GetFileCount(strPath):
        nDirsNumber = 0 #路径下文件夹数量
       # num_files = 0 #路径下文件数量(包括文件夹)
        nFileNumber = 0 #路径下文件数量,包括子文件夹里的文件数量,不包括空文件夹

for root,dirs,files in os.walk(strPath):    #遍历统计
                for each in files:
                        #if each[-2:] == '.o':
                                #print root,dirs,each
                        #print each
                        nFileNumber += 1
                
                #if nFileNumber == 10:
                        #break
                for name in dirs:
                        nDirsNumber += 1
                        #print os.path.join(root,name)

# for fn in os.listdir(path):
           #     num_files += 1
                #print fn

# print num_dirs
       # print num_files

return nFileNumber, nDirsNumber

#3.统计磁盘文件个数
def  DiskFileCount():
        print "统计磁盘文件个数"
        strDrive = raw_input("请输入需检测磁盘(例如C、D、E、F):")

strPath = strDrive + "\\"
        #strPath = "F:\\"
        nFileNumber, nDirsNumber = GetFileCount(strPath)
        print "当前磁盘文件个数:" + bytes(nFileNumber) + ",文件夹个数:" + bytes(nDirsNumber)
        return

print "欢迎使用"

while True:
        print "请选择所需功能:"
        print "1、检测磁盘容量"
        print "2、设置阀值"
        print "3、统计磁盘文件个数"
        print "4、退出功能"
        strSelFunc = raw_input("请选择:")
        if "1" == strSelFunc:
                DiskSpaceFunc()
        elif "2" == strSelFunc:
                SetThreHint()
        elif "3" == strSelFunc:
                DiskFileCount()
        elif "4" == strSelFunc:
                print "谢谢使用!"
                break
        else:
            print "请输入正确的功能序号!"

IsBackMemu = raw_input("是否需要返回主菜单(Y/N):")
        if(IsBackMemu.upper() == "N"):
                print "谢谢使用!"
                break

exit()

#path = os.getcwd()    #获取当前路径
#path = "F:/7-Zip/"
path = "F:/"
print path

num_dirs = 0 #路径下文件夹数量
num_files = 0 #路径下文件数量(包括文件夹)
num_files_rec = 0 #路径下文件数量,包括子文件夹里的文件数量,不包括空文件夹
 
for root,dirs,files in os.walk(path):    #遍历统计
        for each in files:
                #if each[-2:] == '.o':
                        #print root,dirs,each
                num_files_rec += 1
        for name in dirs:
                num_dirs += 1
                #print os.path.join(root,name)
 
for fn in os.listdir(path):
        num_files += 1
        #print fn

print num_dirs
print num_files
print num_files_rec

python检测磁盘容量和文件数相关推荐

  1. 《Python数据分析与挖掘实战》第11章——应用系统负载分析与磁盘容量预测(时间序列)

    文章目录 1.背景与目标分析 2.2 数据探索 2.1 查看数据信息 2.2 数据平稳性分析 3 数据预处理 3.1 数据清洗 3.2 数据变换--属性构造 4 模型构建 4.1 确定模型-- ARM ...

  2. 数据分析与挖掘实战-应用系统负载分析与磁盘容量预测

    应用系统负载分析与磁盘容量预测 背景 某大型企业为了信息化发展的需要,建设了办公自动化系统.人力资源管理系统.财务管理系统.企业信息门户系统等几大企业级应用系统.因应用系统在日常运行时,会对底层软硬件 ...

  3. python读写磁盘扇区数据_linux 读写磁盘扇区

    广告关闭 云服务器1核2G首年99年,还有多款热门云产品满足您的上云需求 为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节: 所有读写操作均 ...

  4. day28:检测磁盘io|自定义时段查看tomcat 日记|打印城市名字|代码上线|统计网站并发量...

    2019独角兽企业重金招聘Python工程师标准>>> 1.有一台阿里云的机器,接到反映说服务器的磁盘 io 很高,登录服务器查看,并没有发现问题,怀疑是间歇性的,看到造成磁盘 io ...

  5. Chapter 11 应用系统负载分析及磁盘容量预测

    根据企业历史磁盘数据,采用时间序列的方法预测未来使用情况,据此判断预警级别. 目录 一.数据预处理 1.11 代码: 1.12 结果: 二.模型建立 2.1 平稳性检验 2.11 代码: 2.12 结 ...

  6. 磁盘配额--对磁盘容量文件数量进行限制

    quota配额 1.磁盘配额的概念 磁盘配额 限制用户对磁盘的使用空间. 软限制:可以限制使用空间和文件数量,允许在规定时间内超出限制. 硬限制:可以限制使用空间和文件数量,不允许超出限制. 配置步骤 ...

  7. 人脸检测进阶:使用 dlib、OpenCV 和 Python 检测面部标记

    使用 dlib.OpenCV 和 Python 检测面部标记 今天,我们将使用dlib和OpenCV来检测图像中的面部标记.dlib的安装教程: https://wanghao.blog.csdn.n ...

  8. 扩展VirtualBox虚拟机磁盘容量

    1.      在cmd命令行下进入VirtualBox的安装目录,使用"VBoxManage list hdds"命令,找到需要修改磁盘容量的虚拟机的img路径或UUID: [p ...

  9. 应用系统负载分析与磁盘容量预测

    1 背景与目标分析 根据历史磁盘数据,采用时间序列分析法,来预测应用系统服务器磁盘已经使用空间的大小:为管理员提供定制化的预警提示. 实质:时间序列-回归 ARMA模型介绍 AR.MA.ARMA.AR ...

最新文章

  1. Linux 小知识翻译 - 「架构」(arch)
  2. 平衡树(模板 and 题目)记录
  3. List遍历删除元素remove()
  4. Tableau可视化学习笔记:day09-10
  5. 对于algorithm102的总结
  6. 二维码扫码登陆流程设计
  7. 电源大师课笔记 2.6
  8. xrd连续扫描和步进扫描_一种提高xrd实验精度的方法
  9. 基于单片机出租车计价器设计
  10. c++ 链表快速查找
  11. java中相对路径_java相对路径设置 | 学步园
  12. DSPE-PEG4-Mal分子式:C56H103N2O15P的分子量介绍
  13. BootStrap框架模块:BootStrap4基础
  14. R 软件的下载与安装
  15. 智能运维之告警聚合技术介绍
  16. java类图_java UML类图的使用-UML基础-火龙果软件工程
  17. clear both 的用法
  18. 我们终将泄露的人脸数据,后果到底有多可怕?
  19. 计算机打印共享应该怎么设置,打印机共享设置,告诉你打印机共享怎么设置
  20. matplotlib绘制饼图之基本配置——万能模板案例

热门文章

  1. OA的新一轮革命-协同管理
  2. Yii自定义加载配置文件
  3. 福昕阅读器无法注释与高亮
  4. 个人计算机和手机软件的异同,在线考试手机端和电脑端有什么区别
  5. 百度输入法的B次元:从生活必需品,走向产业引擎
  6. request getRealPath 的替代方法
  7. Apache 安装介绍
  8. 关于cv::imread读取图片类型的初探
  9. 转载 spring单例bug
  10. 华为问界增速乏力?背后造车工厂赛力斯巨亏收场