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}