我有四个文件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)
但是资源管理器中的文件仍然按名称排序。有线索吗?
正如您正确注意到的那样,当您打开该目录时,文件资源管理器会使用它自己的排序逻辑。所以你不能随心所欲地覆盖它。好吧,至少不容易。
我可以提供 2 个技巧:
使用您的ChatGPT代码,并修改它以将文件重命名为 01-最大、02-第二大等...
或者干脆放弃 Python 脚本并配置文件资源管理器。检查这个 如何设置默认排序逻辑