[問題] GUID 字串格式轉換
各位先進
小弟剛初學不久
想跟大家請教一下
如果想將下面這個String
0x798ffd60, 0xf10e, 0x4ac4, 0x89, 0x39, 0xc8, 0xbe, 0xab, 0xfe, 0x55, 0xb4
轉換成格式成下面格式
798ffd60-f10e-4ac4-8939-c8beabfe55b4
有什麼比較漂亮的寫法嗎?
有一個重點就是,格式必須要符合寬度
例如 第一組資料如果是0xffd60,則我們必須把資料補滿為
000ffd60-xxxx-xxxx-xxxx-xxxxxxxx
其他欄位以此類推
下面是我的Sample code(有點硬來...讓大家傷眼了Orz)
def FillZeroByWidth(Str, Width):
Str = Str[2:].zfill(Width)
return Str
def FillZeroGuid(Str):
tmpList = Str.split(", ")
tmpStr = ""
tmpStr += fillzerobywidth(tmpList[0], 8)
tmpStr += fillzerobywidth(tmpList[1], 4)
tmpStr += fillzerobywidth(tmpList[2], 4)
tmpStr += fillzerobywidth(tmpList[3], 2)
tmpStr += fillzerobywidth(tmpList[4], 2)
tmpStr += fillzerobywidth(tmpList[5], 2)
tmpStr += fillzerobywidth(tmpList[6], 2)
tmpStr += fillzerobywidth(tmpList[7], 2)
tmpStr += fillzerobywidth(tmpList[8], 2)
tmpStr += fillzerobywidth(tmpList[9], 2)
tmpStr += fillzerobywidth(tmpList[10], 2)
return tmpStr
def strInsertIndex(Str, Index, Char):
return Str[:Index] + Char + Str[Index:]
def modifyGuidFormat(Str):
tmpStr = FillZeroGuid(Str)
tmpStr = strInsertIndex(tmpStr, 8, "-")
tmpStr = strInsertIndex(tmpStr, 13, "-")
tmpStr = strInsertIndex(tmpStr, 18, "-")
tmpStr = strInsertIndex(tmpStr, 23, "-")
return tmpStr
def main():
tmpGuid = modifyGuidFormat(Guid)
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.54.228
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1500566065.A.B5B.html
※ 編輯: LwHow (114.137.54.228), 07/21/2017 00:04:33
※ 編輯: LwHow (114.137.54.228), 07/21/2017 00:05:54
推
07/21 00:20, , 1F
07/21 00:20, 1F
→
07/21 00:20, , 2F
07/21 00:20, 2F
→
07/21 00:29, , 3F
07/21 00:29, 3F
推
07/21 09:19, , 4F
07/21 09:19, 4F
→
07/21 09:20, , 5F
07/21 09:20, 5F
討論串 (同標題文章)