[Python Study Notes]磁盤分區和io性能
阿新 • • 發佈:2018-02-15
elif 單位 device str 磁盤 rfi 平臺 linux pre
‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘ >>文件: 磁盤信息.py >>作者: liu yang >>郵箱: [email protected] ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘ #!/usr/bin/env python # -*- coding: utf-8 -*- import sys,os import psutil from time import sleep ‘‘‘判斷平臺‘‘‘ def platform_judge(): # 將平臺信息小寫返回 platform=sys.platform.lower() return platform ‘‘‘將bytes數轉換成更加直觀的符號顯示‘‘‘ def bytes2symbols(bytes_value): ‘‘‘單位符號‘‘‘ symbols = (‘K‘ ,‘M‘, ‘G‘, ‘T‘, ‘P‘, ‘E‘, ‘Z‘, ‘Y‘) ‘‘‘每個單位對應的bytes數的字典,先定義為空‘‘‘ prefix={} ‘‘‘要得到這樣的{K:1024, M:1024*1024,G:1024**3},進行for循環‘‘‘ for i,s in enumerate(symbols): # ‘‘‘enumerate()為列舉函數‘‘‘ # ‘‘‘i:代表下標‘‘‘ # ‘‘‘s:代表改下標對應的值‘‘‘ # ‘‘‘取到符號元組的值,作為prfix字典的key,根據key給value進行賦值‘‘‘ prefix[s]=1024**(i+1) # ‘‘‘打印得到的對應字典‘‘‘ # print(prefix) symbols_value=0 symbol=‘‘ # ‘‘‘循環prefix字典,得到轉換值‘‘‘ for key,value in prefix.items(): if bytes_value >=value : symbols_value=bytes_value/value symbol=key # 如果不滿足最小的KB,則以B顯示 elif bytes_value <1024: return ‘%0.2fB‘%bytes_value # ‘‘‘返回轉換值(str)‘‘‘ return ‘%0.2f%sB‘%(symbols_value,symbol) ‘‘‘實時io速率顯示‘‘‘ def disk_io_message(): t1 = psutil.disk_io_counters() sleep(1) ‘‘‘判斷平臺,命令清屏‘‘‘ if platform_judge()==‘linux‘: os.system(‘clear‘) else: os.system(‘cls‘) t2 = psutil.disk_io_counters() read_bytes = bytes2symbols(t2.read_bytes - t1.read_bytes) write_bytes = bytes2symbols(t2.write_bytes - t1.write_bytes) # tps tps = t2.read_count + t2.write_count - t1.read_count - t1.write_count print(‘讀/s:%10s‘%read_bytes) print(‘寫/s:%10s‘%write_bytes) print(‘Tps:%10d‘%tps) ‘‘‘磁盤分區信息顯示‘‘‘ def disk_partitions(): # 得到磁盤詳細信息的列表 disks=psutil.disk_partitions() # 循環列表,打印 for disk in disks: print(‘%s %6s %10s‘%(disk.device,disk.fstype,disk.opts)) if __name__ == ‘__main__‘: # platform=platform_judge() # value=bytes2symbols(1025) # print(value) # print(platform) while True: disk_io_message() # 磁盤分區信息 # disk_partitions() # io實時性能信息 # disk_io_message()
[Python Study Notes]磁盤分區和io性能