按目录中的大小对文件进行排序[关闭]

问题描述 投票:0回答:1

我有四个文件a.jpg(5kb),b.jpg(1Kb),c.jpg(3Kb)。目前,它们出现在按名称排序的目录中(Windows 文件资源管理器:排序方式 -> 名称)。我想使用 Python 根据它们的大小对它们进行排序,并反映文件资源管理器中的更改,而不仅仅是在脚本中。 我使用 ChatGPT 得出:

import os

def sort_files_by_size(directory):
    # Get a list of files in the directory
    files = os.listdir(directory)

    # Create a list of tuples where each tuple contains the filename and its size
    file_sizes = [(file, os.path.getsize(os.path.join(directory, file))) for file in files]

    # Sort the list of tuples based on the second element (file size)
    sorted_files = sorted(file_sizes, key=lambda x: x[1])

    # Display the sorted files
    for file, size in sorted_files:
        print(f"{file}: {size} bytes")

    # Optionally, you can move or rename the files based on the sorted order
    for index, (file, _) in enumerate(sorted_files, start=1):
        new_name = f"{file}"
        os.rename(os.path.join(directory, file), os.path.join(directory, new_name))

# Replace 'your_directory_path' with the actual path to your directory
directory_path = 'images'
sort_files_by_size(directory_path)

但是资源管理器中的文件仍然按名称排序。有线索吗?

python python-3.x windows sorting
1个回答
0
投票

正如您正确注意到的那样,当您打开该目录时,文件资源管理器会使用它自己的排序逻辑。所以你不能随心所欲地覆盖它。好吧,至少不容易。

我可以提供 2 个技巧:

  1. 使用您的ChatGPT代码,并修改它以将文件重命名为 01-最大、02-第二大等...

  2. 或者干脆放弃 Python 脚本并配置文件资源管理器。检查这个 如何设置默认排序逻辑

© www.soinside.com 2019 - 2024. All rights reserved.