python连通图_PYTHON代码:根据位图间的关系,连接IBM V7000的8G BS位图

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 

rows = cu_m.fetchall()

isbreak = False

if len(rows) == 0:

if pEnd 

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]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值