首页 > 编程知识 正文

Python遍历文件属性

时间:2023-11-22 16:01:09 阅读:302758 作者:FTDR

本文将从多个方面详细介绍如何使用Python遍历文件属性。

一、获取文件路径

在Python中,我们可以使用os模块的listdir()函数和isfile()函数来遍历指定目录下的所有文件,并获取文件的路径。

import os

def get_files_path(directory):
    file_paths = []
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        if os.path.isfile(filepath):
            file_paths.append(filepath)
    return file_paths

directory = 'path/to/directory'
file_paths = get_files_path(directory)
for file_path in file_paths:
    print(file_path)

在上面的代码中,我们定义了一个get_files_path()函数,它接收一个目录路径作为参数,并返回该目录下所有文件的路径列表。然后,我们调用这个函数并打印每个文件的路径。

二、获取文件名和文件扩展名

除了获取文件路径外,有时我们还需要获取文件的名称和扩展名。

import os

def get_file_name_and_extension(file_path):
    file_name = os.path.basename(file_path)
    file_name_without_extension, file_extension = os.path.splitext(file_name)
    return file_name_without_extension, file_extension

for file_path in file_paths:
    file_name, file_extension = get_file_name_and_extension(file_path)
    print(file_name, file_extension)

在上面的代码中,我们定义了一个get_file_name_and_extension()函数,它接收一个文件路径作为参数,并返回文件名和扩展名。然后,我们遍历先前获取到的文件路径列表,调用这个函数并打印每个文件的名称和扩展名。

三、获取文件大小和修改时间

除了文件的基本属性外,我们还可以获取文件的大小和修改时间。

import os
import time

def get_file_size_and_modified_time(file_path):
    file_size = os.path.getsize(file_path)
    modified_time = os.path.getmtime(file_path)
    modified_time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(modified_time))
    return file_size, modified_time_str

for file_path in file_paths:
    file_size, modified_time = get_file_size_and_modified_time(file_path)
    print('文件大小:', file_size, '字节')
    print('修改时间:', modified_time)

在上面的代码中,我们使用os.path.getsize()函数获取文件大小,使用os.path.getmtime()函数获取文件的修改时间,并使用time.strftime()函数将修改时间转换为可读格式。然后,我们遍历文件路径列表,调用这个函数并打印每个文件的大小和修改时间。

四、获取文件权限

在Unix/Linux系统中,每个文件都有一些权限设置,我们可以使用os模块的stat函数获取文件的权限。

import os
import stat

def get_file_permissions(file_path):
    file_permissions = oct(stat.S_IMODE(os.lstat(file_path).st_mode))
    return file_permissions

for file_path in file_paths:
    file_permissions = get_file_permissions(file_path)
    print('文件权限:', file_permissions)

在上面的代码中,我们使用os.lstat()函数获取文件的状态,然后使用stat.S_IMODE()函数获取文件的权限,并使用oct()函数将权限转换为八进制表示。然后,我们遍历文件路径列表,调用这个函数并打印每个文件的权限。

五、总结

通过使用Python的os模块和stat模块,我们可以轻松地遍历文件属性,包括文件路径、文件名、文件扩展名、文件大小、文件修改时间以及文件权限等。这些属性对于文件管理和文件操作非常有用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。