📜  Python - 获取目录中按大小排序的文件列表(1)

📅  最后修改于: 2023-12-03 15:04:03.606000             🧑  作者: Mango

Python - 获取目录中按大小排序的文件列表

在编写Python程序时,我们通常需要一种方法来获取指定目录中文件的列表,并对文件按照大小进行排序。通过使用Python的标准库os和sorted函数,可以轻松实现这个任务。

获取目录中文件列表

要获取指定目录中的文件列表,可以使用os.listdir函数。下面是一个示例程序,它遍历指定目录中的所有文件并打印它们的名称:

import os

path = "/path/to/directory"

for filename in os.listdir(path):
    path = os.path.join(path, filename)
    if os.path.isfile(path):
        print(path)
按大小排序文件列表

现在我们已经获得了文件列表,接下来的任务是按照文件大小对它们进行排序。可以使用Python的sorted函数来完成这个任务。下面是示例程序,它使用os.path.getsize函数来获取文件大小,并使用sorted函数按大小对文件进行排序:

import os

path = "/path/to/directory"

files = []

for filename in os.listdir(path):
    filepath = os.path.join(path, filename)
    if os.path.isfile(filepath):
        files.append((filename, os.path.getsize(filepath)))

files = sorted(files, key=lambda x: x[1])

for filename, size in files:
    print(filename, size)

在这个示例程序中,我们首先遍历指定目录中的所有文件,并使用os.path.getsize函数获取每个文件的大小。接下来,我们将文件名和大小存储在一个元组中,并将每个元组添加到一个文件列表中。最后,我们使用sorted函数对文件列表进行排序,排序时使用每个元组的第二个元素即文件大小作为关键字。最后,我们按照排序后的顺序遍历文件列表,并打印每个文件的名称和大小。

Markdown格式的代码片段
获取目录中文件列表
import os

path = "/path/to/directory"

for filename in os.listdir(path):
    path = os.path.join(path, filename)
    if os.path.isfile(path):
        print(path)
按大小排序文件列表
import os

path = "/path/to/directory"

files = []

for filename in os.listdir(path):
    filepath = os.path.join(path, filename)
    if os.path.isfile(filepath):
        files.append((filename, os.path.getsize(filepath)))

files = sorted(files, key=lambda x: x[1])

for filename, size in files:
    print(filename, size)
总结

通过使用Python的os库和sorted函数,我们可以轻松地获取指定目录中的文件列表,并按照文件大小对文件进行排序。这对于处理大量数据文件的任务尤为有用。