[NEW] Base class for drives

This commit is contained in:
Maxim Romanko 2024-02-07 13:10:08 +03:00
parent 287ab4588d
commit 684a56ca67
4 changed files with 57 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
venv
__pycache__

25
main.py Normal file
View File

@ -0,0 +1,25 @@
from utils.utils_drive import Drive
from utils.globals import *
if OS_TYPE == "Windows":
import wmi
c = wmi.WMI()
drives = []
if disks := c.Win32_DiskDrive():
for disk in disks:
drives.append(Drive(disk.Model, disk.Name, disk.InterfaceType, disk.DefaultBlockSize, int(disk.Size)))
elif OS_TYPE == "Linux":
import subprocess
# Execute the lsblk command to get information about block devices
result = subprocess.run(['lsblk', '-o', 'NAME,SIZE,MODEL,VENDOR,TRAN'], capture_output=True, text=True)
# Get the output
output = result.stdout
# Вывод информации о дисках
print(output)
# for drive in drives:
# print(f"{drive.name} | {drive.path} | {drive.disk_type} | {drive.block_size} | {drive.capacity}")

3
utils/globals.py Normal file
View File

@ -0,0 +1,3 @@
import platform
OS_TYPE = platform.system()

27
utils/utils_drive.py Normal file
View File

@ -0,0 +1,27 @@
from utils.globals import OS_TYPE
class Drive():
path: str
total_sectors: str
disk_type = None
name: str
block_size: int = 512
capacity: int
def __init__(self, name , path, disk_type, block_size, capacity):
self.name = name
self.disk_type = disk_type
self.path = path
if block_size is not None:
self.block_size = block_size
self.capacity = capacity
def erase(self):
pass