PYTHON代码:根据位图间的关系,连接IBM V7000的8G BS位图
2017-08-13 01:02
295 查看
import sqlite3 import struct cx_m = sqlite3.connect("F:\\zy\\map\\map_v2.db") cu_m = cx_m.cursor() BS = 256 * 1024 * 1024 bs = 256 * 1024 sDisk = [] sDisk.append("") sDisk.append("") sDisk.append("") sDisk.append("") sDisk.append(["h:\mdisk4.img", 0]) sDisk.append(["g:\mdisk5.img", 0]) sDisk.append(["i:\mdisk6.img", 0]) sDisk.append(["d:\mdisk7.img", 0]) sDisk.append(["e:\mdisk8.img", 0]) sDisk.append(["f:\mdisk9.img", 0]) for disk in sDisk[4:10]: disk[1] = open(disk[0], 'rb') tlist = list() curNo,curDid,curBS =0,4,800 tlist.append([curNo,curDid,curBS]) pEnd = 0 while True: pos = curBS * BS + 512 * 1024 f = sDisk[curDid][1] f.seek(pos) d = f.read(bs) v = struct.unpack_from("Q",d,bs -8 - pEnd * 8)[0] if v == 0: break if curBS == 13333 or curBS == 21088 : vj = 160 elif curBS == 22588 or (curBS == 3861 and curDid == 7): vj = 1600 elif curBS == 26044: v = 39160914945 elif curBS == 6834 and curDid == 8: v = 55357308929 elif curBS == 6866 and curDid == 8: v = 55407631873 elif curBS == 10472 and curDid == 9: v = 54081059329 else: vj = 16 v1 = v-vj*512 v2 = v+vj*512 #print("v1,v2:",v1,v2) cu_m.execute(r"select * from map_info where v_num > %d and v_num < %d and MAP_ITEM_POS < 5"%(v1,v2)) rows = cu_m.fetchall() isbreak = False if len(rows) == 0: if pEnd < 7: pEnd += 1 continue; else: print("len is 0:CurDid,CurBS is break", curDid, curBS) #print(tlist) pEnd = 0 break; elif len(rows) > 1: t1,t2 = rows[0][0],rows[0][1] #print("t1,t2 is",t1,t2) for row1 in rows: if t1 != row1[0] or t2 != row1[1]: print("len >1,t1,t2,row[0],row[1] is",t1,t2,row1[0],row1[1]) isbreak = True break; if isbreak: print("CurDid,CurBS is break", curDid, curBS) # print(tlist) break; else: pEnd = 0 curNo += 1 curDid = rows[0][0] curBS = rows[0][1] #if curDid== 9 and curBS== 7471: # break tlist.append([curNo,curDid,curBS]) # if curBS == 18511 and curDid == 8: # break print("the list num is",len(tlist)) print(tlist) f1 = open("f:\\zy\\8gLIST.TXT",'w+') for i in tlist: f1.write("%d\t%d\t%d\n"%(i[0],i[1],i[2]))
相关文章推荐
- PYTHON代码:根据FileRecord和MAP的关系,拼接IBM V7000 精简卷碎片
- PYTHON代码:根据FileRecord和MAP的关系,拼接IBM V7000 精简卷碎片
- python爬虫案例——根据网址爬取中文网站,获取标题、子连接、子连接数目、连接描述、中文分词列表
- Python之关于量化投资实现代码--根据策略提出的代码--还未完善
- python 连接sql server数据库的示例代码
- 如何使用 Pylint 来规范 Python 代码风格(来自IBM)
- python连接mysql并进行操作代码
- C#连接各种数据库代码Access,Sql Server,Oracle,Mysql,IBM DB2,Sybase
- python代码ssh自动连接ubuntu
- 一个自动根据xcode中的objective-c代码生成类关系图的神器
- 通过python代码远程连接服务器进行操作之paramiko模块
- IIS管理站点、子站点、程序池间关系,以及C#代码ServerManager实现根据站点与子站点名称获取程序池
- Python连接MySQL的实例代码
- C、C++、python、Java、php、C#六种语言连接mysql数据库代码
- 根据一段代码理清一些变量,常量,数组,指针的关系及理解
- Python连接MySQL的实例代码
- Python 代码调试技巧 (转载自:IBM developerWorks 张颖)
- python 提取主域名和子域名代码——先根据规则提取,如果有问题,则使用tldextract
- Java根据URL连接请求JSON数据解析代码
- 详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果