程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python磁盘容量排序(python获取磁盘列表)

hfteth 2025-04-10 22:58:24 技术文章 13 ℃
def convert_to_mb(capacity):
    # 将容量字符串转换为以MB为单位的值
    total_mb = 0
    i = 0
    while i < len(capacity):
        # 提取数字部分
        num = 0
        while i < len(capacity) and capacity[i].isdigit():
            num = num * 10 + int(capacity[i])
            i += 1
        # 提取单位部分
        if i < len(capacity):
            unit = capacity[i]
            i += 1
            if unit == 'T':
                total_mb += num * 1024 * 1024
            elif unit == 'G':
                total_mb += num * 1024
            elif unit == 'M':
                total_mb += num
    return total_mb

def stable_disk_sort(n, disks):
    # 将磁盘容量转换为MB并记录原始索引
    disk_list = []
    for idx, disk in enumerate(disks):
        mb = convert_to_mb(disk)
        disk_list.append({'original_index': idx, 'capacity': disk, 'mb': mb})
    
    # 按MB值进行稳定排序
    disk_list.sort(key=lambda x: x['mb'])
    
    # 按排序后的顺序输出磁盘容量
    sorted_disks = [disk['capacity'] for disk in disk_list]
    return sorted_disks

# 读取输入
n = int(input())
disks = [input().strip() for _ in range(n)]

# 计算并输出结果
sorted_disks = stable_disk_sort(n, disks)
for disk in sorted_disks:
    print(disk)


Tags:

最近发表
标签列表