Python中的数据类型转换举例及脚本统计服务器内存实例

统计系统剩余的内存 

    In [1]: s1 = 'abc'

    In [2]: help(s1.startswith)

    

    Help on built-in function startswith:

    startswith(...)

    S.startswith(prefix[, start[, end]]) -> bool

    Return True if S starts with the specified prefix, False otherwise.

    With optional start, test S beginning at that position.

    With optional end, stop comparing S at that position.

    prefix can also be a tuple of strings to try.

    (END)

cat /proc/meminfo


    #!/usr/bin/python

    with open('/proc/meminfo') as fd:

        for line in fd:

            if line.startswith('MemTotal:'):

                total = line.split()[1]

                continue

            if line.startswith('MemFree:'):

                free = line.split()[1]

                break

    print "%.2f" % (int(free)/1024.0)+'M'


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

10进制转换成16进制:

    In [9]: hex(10)

    Out[9]: '0xa'


16进制转换成10进制:

    In [8]: int('0xa',16)

    Out[8]: 10

    In [7]: int('aa',16)

    Out[7]: 170


纯数字的字符串转换成10进制:

    In [10]: int('10')

    Out[10]: 10


10进制转换成字符串:

    In [11]: str(10)

    Out[11]: '10'

举例:

原有服务器mac:02:42:0e:31:98:0b,写脚本生成下一个网卡的mac,自动加1。

    #!/usr/bin/python

    macaddr = '02:42:0e:31:98:0b'

    prefix_mac = macaddr[:-3]

    last_two = macaddr[-2:]

    plus_one = int(last_two,16)+1

    if plus_one in range(10):

        new_last_two = hex(plus_one)[2:]

        new_last_two = '0' + new_last_two

    else:

        new_last_two = hex(plus_one)[2:]

    if len(new_last_two) == 1:

        new_last_two = '0' +new_last_two

    new_mac = prefix_mac + ':' + new_last_two

    print new_mac.upper()

数据类型转换(列表与字典相互转换)

查看帮助join()

    Help on built-in function join:

    join(...)

    S.join(iterable) -> string

    Return a string which is the concatenation of the strings in the

    iterable.  The separator between elements is S.

    (END)


字符串转列表:list(string)

    In [36]: a = list('aaa')

    In [37]: type(a)

    Out[37]: list

    In [38]: a

    Out[38]: ['a', 'a', 'a']


列表转字符串:'''.join(list)

    In [38]: a

    Out[38]: ['a', 'a', 'a']

    In [39]:l = a

    In [18]: l

    Out[18]: ['a', 'a', 'a']

    In [19]: ''.join(l)

    Out[19]: 'aaa'

    In [20]: ','.join(l)

    Out[20]: 'a,a,a'

    In [21]: '.'.join(l)

    Out[21]: 'a.a.a'

    In [22]: a= 'a'

    In [23]: help(a.join)


字符串转元组:tuple(string)

    In [24]: s

    Out[24]: ['a', 'a', 'a']

    In [26]: tuple(s)

    Out[26]: ('a', 'a', 'a')


元组转字符串:''.join(tuple)

    In [54]: type(a)

    Out[54]: tuple

    In [55]: a = str(a)

    In [56]: a

    Out[56]: "('a', 'b', 'c', 111)"

    In [57]: type(a)

    Out[57]: str


字典转列表:

    In [28]: dic = {'a':1,'b':2}

    In [29]: dic

    Out[29]: {'a': 1, 'b': 2}

    In [30]: dic.items()

    Out[30]: [('a', 1), ('b', 2)]


列表转字典:

    In [31]: l1 = dic.items()

    In [32]: l1

    Out[32]: [('a', 1), ('b', 2)]

    In [33]: type(l1)

    Out[33]: list

    In [34]: dict(l1)

    Out[34]: {'a': 1, 'b': 2}




本文转自 枫叶云  51CTO博客,原文链接:http://blog.51cto.com/fengyunshan911/2056008
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值