本文将从多个方面详细介绍如何使用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
模块,我们可以轻松地遍历文件属性,包括文件路径、文件名、文件扩展名、文件大小、文件修改时间以及文件权限等。这些属性对于文件管理和文件操作非常有用。