educoder头歌实验操作系统之存储管理 ※

本文档提供了一个Python程序,该程序能够根据用户输入显示系统的存储信息,包括主存、交换区和分区信息。用户输入1展示主存,2展示交换区,3展示分区,0退出程序。程序使用psutil库获取相关信息,并转换为KB、MB、GB单位,然后将这些信息写入到文本文件中。
摘要由CSDN通过智能技术生成

第一关:存储信息展示


任务描述

本关任务:编写一个程序,该程序能根据用户的输入显示对于的存储信息。

相关知识

为了完成本关任务,你需要掌握:1.如何利用Python查看存储信息。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 编写一个程序,该程序能根据用户的输入显示对于的存储信息。如输入1显示主存信息、输入2显示交换区信息、输入3显示分区信息、输入0程序结束。

如图所示:

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出答案正确!

 

参考答案

import psutil  
# 写入文件函数  
def write_text():  
    x = open("./storage_information_acquisition/结果/信息.txt",'w',encoding='utf-8')  
    return  x  
# 此函数将容量信息更改为 kb、mb、gb 为单位  
def BtoKMG(n):  
    #*********** Begin **********#  
    if n>=1024**3:  
        return str(round(n/1024**3, 1))+' GB'  
    elif n>=1024**2:  
        return str(round(n/1024**2, 1))+' MB'  
    else:  
        return str(round(n/1024**1, 1))+' KB'  
    #*********** End **********#  
# 此函数将主存信息写入文件  
def printMemInfo():  
    #*********** Begin **********#  
    m = psutil.virtual_memory()  
    #  使用写入文件函数将结果写入文本文件  
    #  注意:冒号请使用中文冒号,主存信息请使用\t分割(如:总容量:    10GB),末尾请使用换行符换行  
    file =  write_text()  
    file.write('-'*5+ '主存信息'+ '-'*5+"\n")  
    file.write('总容量:\t'+   BtoKMG(m.total)+"\n")  
    file.write('已用容量:\t'+ BtoKMG(m.used)+"\n")  
    file.write('剩余容量:\t'+ BtoKMG(m.free)+"\n")  
    file.write('-'*18)  
    #*********** End **********#  
    return True  
# 此函数将交换区信息写入文件  
def printSwapMemInfo():  
    #*********** Begin **********#  
    m = psutil.swap_memory()  
    #  使用写入文件函数将结果写入文本文件  
    #  注意:冒号请使用中文冒号,交换区信息请使用\t分割(如:总容量:    10GB),末尾请使用换行符换行  
    file =  write_text()  
    file.write('-'*4+ '交换区信息'+ '-'*4 +"\n")  
    file.write('总容量:\t'+BtoKMG(m.total)+"\n")  
    file.write('已用容量:\t'+BtoKMG(m.used)+"\n")  
    file.write('剩余容量:\t'+BtoKMG(m.free)+"\n")  
    file.write('-'*18)  
    #*********** End **********#  
    return True  
# 此函数将分区信息写入文件  
def printDiskInfo():  
    #*********** Begin **********#  
    #  使用写入文件函数将结果写入文本文件  
    # 注意 每个分区信息之间请用 \t 进行分割,末尾请使用换行符  
    file =  write_text()  
    file.write('-'*25+ '分区信息'+ '-'*25 +"\n")  
    file.write('分区\t类型\t总容量\t已用容量\t剩余容量\t已用比例'+"\n")  
    for part in psutil.disk_partitions():  
        if not 'cdrom' in part.opts:  
            usage = psutil.disk_usage(part.mountpoint)  
            file.write(part.device + '\t' +  
                  part.fstype + '\t' +  
                  BtoKMG(usage.total) + '\t' +  
                  BtoKMG(usage.used) + '\t' +  
                  BtoKMG(usage.free) + '\t' +  
                  str(usage.percent)+'%'+"\n")  
    file.write('-'*58)  
    #*********** End **********#  
    return True 
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值