Вы также можете думать об этом как о стирании диска или файла. Я не могу обновить статус транзакции во время выполнения процесса. он говорит, сколько в терминале, но я не могу дать его в качестве значения метки. Вы можете мне помочь?
import os
from tkinter import *
root=Tk()
yazi=Label(root,text="Transaction status:0/100")
yazi.pack()
def main(sektor):
s=sektor-1
yuzde=0
yuzde_bir=int(sektor/100)
kontrol_noktalari=yuzde_bir
if os.name == "nt":
print(read_sector(r"\\.\physicaldrive0",s-1))
#wipe(r"\\.\physicaldrive0",s-1)
print(read_sector(r"\\.\physicaldrive0",s-1))
else:
for i in range(s-1):
yazi.after(100,main)
if i == kontrol_noktalari:
yuzde=yuzde+1
kontrol_noktalari=kontrol_noktalari+yuzde_bir
yazi.config(text="Transaction status:%s/100" %yuzde)
print(yuzde)
wipe("/dev/sdb",i)
print("You have written zero everywhere")
def read_sector(disk, sector_no=0):
f = open(disk, 'rb')
f.seek(sector_no * 512)
read = f.read(512)
return read
def wipe(disk,sector_no=0):
w= open(disk, 'wb')
w.seek(sector_no*512)
byte_arr = [0]
binary_format = bytearray(byte_arr)
for i in range(512):
w.seek((sector_no*512)+i)
w.write(binary_format)
w.close()
sil=Button(root,text="Delete it sir",command=lambda :main(31205))
sil.pack()
root.mainloop()
Я выполнил процесс на linux, пока не могу сделать windows. будьте осторожны при попытке. Вы можете удалить свой диск SDB.