在 Python3 中,
os模块提供了与操作系统进行交互的功能,尤其在文件和目录操作方面应用广泛。下面将详细介绍
os模块中常用的文件和目录方法。
作用:将多个路径组合成一个完整的路径,自动处理不同操作系统的路径分隔符。
示例:
import os
path = os.path.join('home', 'user', 'documents', 'file.txt')
print(path)
作用:返回路径的绝对路径形式。
示例:
import os
relative_path = 'file.txt'
absolute_path = os.path.abspath(relative_path)
print(absolute_path)
作用:返回路径中的目录部分。
示例:
import os
path = '/home/user/documents/file.txt'
directory = os.path.dirname(path)
print(directory)
作用:返回路径中的文件名或目录名。
示例:
import os
path = '/home/user/documents/file.txt'
filename = os.path.basename(path)
print(filename)
作用:判断路径是否存在(文件或目录)。
示例:
import os
print(os.path.exists('/home/user/documents/file.txt'))
作用:判断路径是文件还是目录。
示例:
import os
print(os.path.isfile('/home/user/documents/file.txt'))
作用:重命名文件或目录。
示例:
import os
os.rename('old_name.txt', 'new_name.txt')
作用:删除文件。
示例:
import os
os.remove('file_to_delete.txt')
作用:替换文件,如果目标文件已存在则覆盖。
示例:
import os
os.replace('source.txt', 'destination.txt')
作用:创建目录(单级目录)。
示例:
import os
os.mkdir('new_directory')
作用:递归创建目录(多级目录)。
示例:
import os
os.makedirs('parent/child/grandchild')
作用:删除空目录。
示例:
import os
os.rmdir('empty_directory')
作用:递归删除空目录(从最内层目录开始删除,直到遇到非空目录)。
示例:
import os
os.removedirs('parent/child/grandchild')
作用:返回指定目录下的所有文件和目录名(列表形式)。
示例:
import os
entries = os.listdir('/home/user/documents')
print(entries)
作用:返回文件或目录的详细信息(如大小、修改时间等)。
示例:
import os
stat_info = os.stat('file.txt')
print(stat_info.st_size)
作用:修改文件或目录的权限。
示例:
import os
os.chmod('file.txt', 0o755)
作用:修改文件或目录的所有者和所属组(需要管理员权限)。
示例:
import os
os.chown('file.txt', 1000, 1000)
作用:返回当前工作目录。
示例:
import os
cwd = os.getcwd()
print(cwd)
作用:改变当前工作目录。
示例:
import os
os.chdir('/home/user/documents')
作用:获取环境变量(字典形式)。
示例:
import os
print(os.environ['PATH'])
作用:获取指定环境变量的值,若不存在则返回默认值。
示例:
import os
home_dir = os.getenv('HOME', '/default/path')
print(home_dir)
作用:执行系统命令,返回命令执行状态(0 表示成功,非 0 表示失败)。
示例:
import os
status = os.system('ls -l')
作用:遍历目录树,返回一个三元组(当前目录路径,子目录列表,文件列表)。
示例:
import os
for root, dirs, files in os.walk('/home/user/documents'):
print(f"当前目录: {root}")
print(f"子目录: {dirs}")
print(f"文件: {files}")
print("-------------------")
- 路径分隔符:不同操作系统使用不同的路径分隔符(Linux 为
/,Windows 为\),建议使用os.path.join()自动处理。
- 权限问题:某些操作(如
os.chown()、删除受保护文件)需要管理员权限。
- 异常处理:文件和目录操作可能引发异常(如文件不存在、权限不足),建议使用
try-except块进行异常处理。
import os
try:
os.remove('nonexistent_file.txt')
except FileNotFoundError:
print("文件不存在")
except PermissionError:
print("权限不足")
os模块提供了丰富的文件和目录操作方法,能够满足大多数与操作系统交互的需求。在实际开发中,建议结合os.path模块一起使用,以更方便地处理路径相关问题