您的位置:

Python 操作系统文件列表的方法

一、os.listdir()

os.listdir() 函数能够返回指定路径下的所有文件和文件夹的列表。该函数的参数是一个字符串,表示要列出文件和文件夹的路径。

import os
path = '/home/user/documents/'
files = os.listdir(path)
for file in files:
    print(file)

上述代码将列出给定路径下的所有文件和文件夹名称。

二、os.walk()

os.walk() 函数能够递归地遍历一个目录下的所有子目录,返回一个包含多个元组的生成器。每个元组包含3个元素:

  • 表示当前目录名称的字符串
  • 表示当前目录中所有子目录的名称列表的字符串列表
  • 表示当前目录中所有文件的文件名列表的字符串列表

import os
path = '/home/user/documents/'
for root, dirs, files in os.walk(path):
    print("当前目录:", root)
    print("子目录列表:", dirs)
    print("文件列表:", files)

上述代码将递归地遍历给定路径下的所有子目录。

三、os.path模块

os.path 模块提供了很多函数,能够返回文件的大小、修改时间、创建时间和文件类型等信息。常见的函数包括:

  • os.path.exists(path):判断给定路径是否存在,返回 True 或 False
  • os.path.getsize(path):返回指定文件的大小(单位为字节)
  • os.path.getmtime(path):返回指定文件的修改时间(时间戳格式)
  • os.path.getctime(path):返回指定文件的创建时间(时间戳格式)
  • os.path.isfile(path):判断给定路径是否为文件,返回 True 或 False
  • os.path.isdir(path):判断给定路径是否为文件夹,返回 True 或 False

import os.path
path = '/home/user/documents/file.txt'
if os.path.exists(path):
    print("文件/文件夹存在")
if os.path.isfile(path):
    print("该路径指向一个文件")
if os.path.isdir(path):
    print("该路径指向一个文件夹")
if os.path.getsize(path) > 1024:
    print("该文件大小大于1KB")

上述代码将判断给定路径是否存在、是文件还是文件夹、文件大小是否大于1KB。

四、os模块和glob模块结合使用

os模块和glob模块可以配合使用,查找符合某种特定条件的文件。


import os
import glob
folder = '/home/user/documents/'
files = glob.glob(os.path.join(folder, '*.txt'))
for file in files:
    print(file)

上述代码将在给定路径下查找所有扩展名为 .txt 的文件。

五、shutil模块

shutil模块是一个高级文件操作模块,功能包括复制文件、删除文件、移动文件等。常见的函数包括:

  • shutil.copy(src, dst):将文件从 src 复制到 dst
  • shutil.move(src, dst):将文件从 src 移动到 dst
  • shutil.rmtree(path):删除 path 路径下的所有文件和文件夹

import shutil
src_file = '/home/user/documents/file.txt'
dst_file = '/home/user/dropbox/file.txt'
shutil.copy(src_file, dst_file)

上述代码将 '/home/user/documents/file.txt' 复制到 '/home/user/dropbox/file.txt'。

六、总结

本文介绍了 Python 操作系统文件列表的方法,包括 os.listdir()、os.walk()、os.path 模块、os和glob模块结合使用以及 shutil模块等。通过这些方法,程序员可以轻松地获取和操作文件和文件夹的列表及其属性信息。