2015-08-13 18 views
1

我有一個字符串"aa2a.aaa2.aaaa"。我想通過這個作爲字符串參數,但這應該被轉換爲使用一些十六進制轉換方法的MAC地址。我怎樣才能將字符串轉換爲十六進制?如何在Python中將字符串var轉換爲十六進制

hex(mac) 

以上方法不會幫助,因爲它只是轉換串入其十六進制值。

+7

你期待什麼作爲輸出? –

+0

爲什麼介於兩者之間? –

+0

你想得到''aa:2a:aa:a2:aa:aa''嗎?例如's =「aa2a.aaa2.aaaa」.replace('。','');''mac =「:」。join(s [i:i + 2] for range in(0,len s),2))' – jfs

回答

2

你不能在你的字符串應用hex,因爲它包含點字符,你可以用點分割它,並將其轉換爲與底座16的整數,那麼轉換爲十六進制:

>>> s="aa2a.aaa2.aaaa" 
>>> '.'.join(map(lambda x:hex(int(x,16)),s.split('.'))) 
'0xaa2a.0xaaa2.0xaaaa' 

或者如果你是確保所有文字都是有效的基本16,你可以簡單地做:

>>> s="aa2a.aaa2.aaaa" 
>>> '.'.join(map(lambda i:'0x{}'.format(i),s.split('.'))) 
'0xaa2a.0xaaa2.0xaaaa' 

如果不是那麼第一個解決方案將引發ValueError,你可以用一個異常處理。

相關問題