Python极简易版磁盘操作系统代码

class DiskOperatingSystem:
def init(self, disk_size=100):
self.disk = [None] * disk_size
self.free_blocks = set(range(disk_size))
self.file_table = {}

def allocate_block(self):
    if not self.free_blocks:
        return None
    block_number = self.free_blocks.pop()
    return block_number

def deallocate_block(self, block_number):
    self.free_blocks.add(block_number)
    for file_name, file_blocks in self.file_table.items():
        if block_number in file_blocks:
            file_blocks.remove(block_number)
            if not file_blocks:
                del self.file_table[file_name]

def write_file(self, file_name, data):
    file_blocks = []
    for char in data:
        block_number = self.allocate_block()
        if block_number is None:
            print(f"Not enough space to write file '{file_name}'.")
            return
        self.disk[block_number] = char
        file_blocks.append(block_number)
    self.file_table[file_name] = file_blocks

def read_file(self, file_name):
    if file_name not in self.file_table:
        print(f"File '{file_name}' not found.")
        return
    file_blocks = self.file_table[file_name]
    return "".join([self.disk[block_number] for block_number in file_blocks])

def delete_file(self, file_name):
    if file_name not in self.file_table:
        print(f"File '{file_name}' not found.")
        return
    file_blocks = self.file_table[file_name]
    for block_number in file_blocks:
        self.deallocate_block(block_number)
    del self.file_table[file_name]

disk_os = DiskOperatingSystem()

while True:
print("\nDisk Operating System Menu:")
print(“1. Write a file写入文件”)
print(“2. Read a file读取文件”)
print(“3. Delete a file删除文件”)
print(“4. Exit退出”)

choice = input("Enter your choice: 输入你的选择")

if choice == "1":
    file_name = input("Enter file name: ")
    data = input("Enter data to write: ")
    disk_os.write_file(file_name, data)
elif choice == "2":
    file_name = input("Enter file name to read: ")
    print(disk_os.read_file(file_name))
elif choice == "3":
    file_name = input("Enter file name to delete: ")
    disk_os.delete_file(file_name)
elif choice == "4":
    break
else:
    print("Invalid choice. Try again.")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易软科技(河源)有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值