统计系统剩余的内存、数据类型转换计算(计算mac地址)、数据类型转换(列表与字典相互转换)

简介:

统计系统剩余的内存

1、思路
首先对文件遍历;判断当有MemFree这一行开头的,执行下面的语句,line.split()[1]默认以空格为分隔符,取1列的值;最后取2位小数点

统计系统剩余的内存、数据类型转换计算(计算mac地址)、数据类型转换(列表与字典相互转换)

计算:
统计系统剩余的内存、数据类型转换计算(计算mac地址)、数据类型转换(列表与字典相互转换)

统计系统剩余的内存、数据类型转换计算(计算mac地址)、数据类型转换(列表与字典相互转换)

数据类型转换计算(计算mac地址)

需要:有时候我们要把不同的数据类型做一起计算,这时就需要把两个不同的数据类型转换为同种数据类型,否则不同的数据类型不能做计算,比如,字符串之间是不能做加减乘除运算的,必须转化为数值才可以做运算
1、字符串转换为列表

In [1]: s = 'abc'

In [2]: list(s)
Out[2]: ['a', 'b', 'c']

In [3]: str1='ABCDEF'

In [4]: list(str1)
Out[4]: ['A', 'B', 'C', 'D', 'E', 'F']

2、字符串转换为元组

In [5]: tuple(str1)
Out[5]: ('A', 'B', 'C', 'D', 'E', 'F')

3、元组又转换为字符串

In [7]: t
Out[7]: ('A', 'B', 'C', 'D', 'E', 'F')

In [8]: ''.join(t)
Out[8]: 'ABCDEF'

4、列表转换为字符串

In [12]: l
Out[12]: ['A', 'B', 'C', 'D', 'E', 'F']

In [13]: ''.join(l)
Out[13]: 'ABCDEF'

5、元组转换为列表

In [14]: t
Out[14]: ('A', 'B', 'C', 'D', 'E', 'F')

In [15]: list(t)
Out[15]: ['A', 'B', 'C', 'D', 'E', 'F']

6、列表转换为元组

In [16]: l
Out[16]: ['A', 'B', 'C', 'D', 'E', 'F']

In [17]: tuple(l)
Out[17]: ('A', 'B', 'C', 'D', 'E', 'F')

7、字典转换为列表

In [18]: dict1={'name':'jack','age':'11'}

In [19]: dict1.items()
Out[19]: [('age', '11'), ('name', 'jack')]

8、列出目录
In [29]: import os
Out[29]: 
['efi',
'grub2',
'grub',
'.vmlinuz-3.10.0-693.el7.x86_64.hmac']

9、16进制转化为十进制
In [29]: int('a', 16)
Out[29]: 10

In [30]: int('ab', 16)
Out[30]: 171

10进制转化为16进制
In [37]: hex(123)
Out[37]: '0x7b'

10、列表转化为字典
In [34]: list1 = [('a', 1), ('b', 2)]

In [35]: dict(list1)
Out[35]: {'a': 1, 'b': 2}

#比如mac='00:0c:29:ba:27:23',下一位就是'00:0c:29:ba:27:24'
macaddr='00:0c:29:ba:27:ab'
prefix_max=macaddr[:-3] #00:0c:29:ba:27
last_two=macaddr[-2:] #23
plus_one=int(last_two,16) + 1 #将16进制转化为10进制
if plus_one in range(10): #如果0~9的数
new_last_two=hex(plus_one)[2:] #将10进制转化为16进制
new_last_two='0'+new_last_two #当plus_one=0~9时,可以前面加上0:,符合mac规范
else: #如果10以上的数,比如hex(12)='0xc'
new_last_two=hex(plus_one)[2:] #取[2:],就是c
if len(new_last_two) == 1: #len(c)=1,前面加上0;0c,否则就不加
new_last_two='0'+new_last_two
new_mac=prefix_max+':'+new_last_two
print new_mac.upper()










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2056007,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
运维 监控 Ubuntu
Python实现ubuntu系统进程内存监控
Python实现ubuntu系统进程内存监控
12 1
|
12天前
|
机器学习/深度学习 自动驾驶 安全
深入理解操作系统内存管理:策略与实现基于深度学习的图像识别技术在自动驾驶系统中的应用
【4月更文挑战第30天】 在现代计算机系统中,操作系统的内存管理是确保系统高效、稳定运行的关键组成部分。本文将深入探讨操作系统中内存管理的多种策略及其实现机制,包括但不限于分页、分段和段页式结合等技术。我们将剖析内存分配的原理,讨论虚拟内存技术的实现以及它如何提供更大的地址空间并允许内存的交换。同时,我们还会涉及内存保护机制,它们是如何防止程序访问未授权的内存区域。最后,文中将对现代操作系统如Linux和Windows中的内存管理实践进行比较分析,以期给读者提供全面而深入的理解和参考。 【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经
|
14天前
|
监控 Linux
【专栏】在 Linux 中,掌握检查内存使用情况至关重要,因为内存问题可能导致系统性能下降甚至崩溃。这 5 个命令堪称绝了!
【4月更文挑战第28天】在 Linux 中,掌握检查内存使用情况至关重要,因为内存问题可能导致系统性能下降甚至崩溃。本文介绍了 5 个常用的检查内存命令:1) `free` 提供内存和交换区的详细信息;2) `top` 显示进程信息及内存使用;3) `vmstat` 输出系统综合信息,包括内存动态变化;4) `pidstat` 监控特定进程的内存使用;5) `/proc/meminfo` 文件提供系统内存详细数据。了解和使用这些命令能帮助用户及时发现并解决内存相关问题,确保系统稳定运行。
|
14天前
|
Ubuntu Shell 网络安全
【专栏】在Ubuntu 22.04上安装KubeSphere的指南:确保系统至少有4GB内存和2核CPU,安装Docker和docker-compose
【4月更文挑战第28天】在Ubuntu 22.04上安装KubeSphere的指南:确保系统至少有4GB内存和2核CPU,安装Docker和docker-compose。下载安装脚本`curl -sSL https://kubesphere.io/install.sh | bash`,根据提示选择安装选项,等待完成。安装后,通过访问控制台验证安装效果。解决可能出现的错误、网络问题和性能问题,利用KubeSphere提升容器管理效率。本文为顺利安装和使用提供参考。
|
16天前
|
存储 编解码 安全
阿里云服务器计算型c7与c8y、通用型g7与g8y、内存型r7与r8y区别及选择参考
在阿里云目前的活动中,除了轻量应用服务器和经济型e、通用算力型u1实例的云服务器之外,性能更高的云服务器实例规格有计算型c7与c8y、通用型g7与g8y、内存型r7与r8y,这些实例规格更适合企业级用户的上云需求,有的用户并不是很清楚他们之间的区别,从而不知道应该如何选择,本文就为大家介绍一下他们之间的区别,以供选择参考。
阿里云服务器计算型c7与c8y、通用型g7与g8y、内存型r7与r8y区别及选择参考
|
19天前
|
存储 Java Shell
Android系统 实现低内存白名单防LMK原理分析
Android系统 实现低内存白名单防LMK原理分析
32 0
|
20天前
|
存储 关系型数据库 MySQL
mysql安装教程mac
【4月更文挑战第21天】
|
2天前
|
NoSQL Redis Docker
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
12 0
|
3天前
mac10.9安装win7
mac10.9安装win7
|
3天前
|
安全 Java iOS开发
MAC OS X 硬盘安装详细分解教程
MAC OS X 硬盘安装详细分解教程
12 1