在这里,我尝试创建一个函数来(最终)支持使用多种规格的驱动器擦除。我遇到的问题是,当我试图将ZeroBlock写入磁盘时,它会被写入,但代码的行为与失败时一样。我说它起作用的原因是它清除了我测试系统中驱动器的引导扇区
def WipeDisk(Drive, WipeSpec, Passes):
DiskSize = int(System.HDD[Drive].Size)
DiskSect = int(System.HDD[Drive].Sectors())
SectSize = int(System.HDD[Drive].SectSz)
System.HDD[Drive].Start = time.time()
if (WipeSpec == "Zero"):
with open("/dev/zero", "rb") as Zero:
ZeroBlock = Zero.read(SectSize)
Zero.close()
Pass = 0
with open(System.HDD[Drive].Device, "wb") as Disk:
while (Pass < Passes):
Current = 1
while (Current < DiskSect):
if (Disk.write(ZeroBlock)):
if (Current %((DiskSect*Passes)/100) == 0):
(variable updates)
if (Current == DiskSect):
Pass = (Pass+1)
else:
System.HDD[Drive].Error = 1
Pass = Passes
break
Current = (Current+1)
if (Pass == Passes):
System.HDD[Drive].Current = Current
System.HDD[Drive].Percent = "100"
System.HDD[Drive].Complete = 1
Disk.close()
else:
print("Unknown Wipe Specification: "+WipeSpec)
The documentationfor
file.write
表示:假定
write
返回某个值来指示写入是否成功,这似乎是错误的。不是的相关问题 更多 >
编程相关推荐