一、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'。