我们可以将列表、字典等数据保存为二进制文件,一方面便于后续使用,另一方面可以节省代码量。
import pickle
city = {
'北京':'101010100',
'上海':'101020100',
'台北':'101340101'}
# 写入二进制文件,用wb
pickle_file = open('city.pkl','wb')
pickle.dump(city,pickle_file)
pickle_file.close()
# 读取二进制文件,用rb
pickle_file = open('city.pkl','rb')
city = pickle.load(pickle_file)
print(city)
运行结果:
{‘北京’: ‘101010100’, ‘上海’: ‘101020100’, ‘台北’: ‘101340101’}
import numpy as np
annotation = {
'h': 1008.0, 'w': 756.0,
'gt_class': ['xiaoduxiong', 'xiaoduxiong'],
'gt_bbox': np.array([[398., 114., 559., 324.],[188., 294., 355., 471.]], dtype=np.float32),
'gt_poly': [
[[457, 133, 459, 115, 471, 114, 481, 129, 523, 143, 544, 167, 560, 171,
556, 186, 548, 192, 534, 240, 502, 257, 484, 256, 494, 271, 481, 276,
471, 274, 446, 325, 427, 318, 430, 303, 420, 297, 414, 307, 398, 297,
423, 247, 414, 233, 418, 225, 437, 229, 417, 193, 431, 156]],
[[270, 335, 309, 338, 334, 362, 342, 386, 356, 397, 350, 415, 337, 411,
324, 436, 295, 457, 287, 457, 273, 472, 257, 464, 253, 458, 227, 435,
216, 411, 216, 388, 196, 367, 200, 354, 207, 356, 192, 338, 188, 328,
196, 319, 209, 324, 217, 315, 207, 303, 216, 294, 230, 297, 244, 314,
252, 301, 268, 315]]
]
}
# 写入二进制文件
np.save('annotation.npy', annotation)
# 读取二进制文件
annotation = np.load('./annotation.npy', allow_pickle=True)
print(annotation)
运行结果: