- str转16进制HEX数据
- 有序读取文件内容到有序字典
- 读取嵌套字典指定key的value值
- 正则表达式替换文件中字符串
str转16进制HEX数据
def str2hex(s):
odata = 0
su =s.upper()
for c in su:
tmp=ord(c)
if tmp <= ord('9') :
odata = odata << 4
odata += tmp - ord('0')
elif ord('A') <= tmp <= ord('F'):
odata = odata << 4
odata += tmp - ord('A') + 10
return odata
data = str2hex('ABCD')
print(str(data))
print(hex(data))
#打印输出
43981
0xabcd
有序读取文件内容到有序字典
import collections
from collections import OrderedDict
obj_file = r"export_symbol.json"
obj_fd = open(obj_file)
obj_data = obj_fd.read()
obj_fd.close()
my_dict = json.loads(obj_data, object_pairs_hook=OrderedDict)
python3.6以上版本字典是有序的
读取嵌套字典指定key的value值
import types
def dict_get(dict, objkey, default):
tmp = dict
for k,v in tmp.items():
if k == objkey:
return v
else:
if type(v) is types.DictType:
ret = dict_get(v, objkey, default)
if ret is not default:
return ret
return default
versiondict = dict_get(my_dict, 'Version', None)
python3以上会报错types库不存在.DictType方法
正则替换文件中字符串
import re
f=open(outpath,'r')
alllines=f.readlines()
f.close()
f=open(outpath,'w+')
for eachline in alllines:
a=re.sub('}}{','},',eachline)
f.writelines(a)
f.close()
将文件中的 }}{ 替换为 },