首页 > 代码库 > kv文件读写 in Python & C++
kv文件读写 in Python & C++
文件格式均为kv对,即keylength, key, valuelen, value. 如何对其进行读写操作,本文列出demo code。感谢涛哥贡献部分代码,这里分享,方便大家使用。
Python:
def readimg(): fr = open(‘IMG_2963.JPG‘,‘r‘) keylen = struct.unpack(‘i‘,fr.read(4))[0] key = fr.read(keylen) valuelen = struct.unpack(‘i‘,fr.read(4))[0] value = http://www.mamicode.com/fr.read(valuelen)>
C++:
inline bool readkv(istream &ifs,string &key,string &value) { int keylen; ifs.read((char*)&keylen,4); if (!ifs) { return false; } key.resize(keylen); ifs.read((char*)key.c_str(),keylen); int valuelen; ifs.read((char*)&valuelen,4); value.resize(valuelen); ifs.read((char*)value.c_str(),valuelen); return true; } inline void writekv(ostream &ofs,const string & key,const string & value) { unsigned int klen = key.size(); unsigned int vlen = value.size(); ofs.write((const char*)&klen,4); ofs.write(key.c_str(),klen); ofs.write((const char*)&vlen,4); ofs.write(value.c_str(),vlen); ofs.flush(); }如果value是一张图片的data,调用的时候可以用opencv的imdecode直接进行转换,生成cv::Mat类型的图片
cv::Mat buf(1,value.size(),CV_8U,(void *)value.c_str()); cv::Mat srcmat = cv::imdecode(buf,1);
kv文件读写 in Python & C++
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。