Skip to content

os 模块


简介

Python 的内置库 os(Operating System Interface 提供了与操作系统交互的函数,允许用户与操作系统进行各种操作,如文件和目录操作、环境变量访问、进程管理等。

使用 os 库,您可以编写跨平台的代码,因为它提供了对操作系统底层功能的抽象,而不用担心特定操作系统的细节。


路径操作

  • os.getcwd():获取当前目录的路径
import os
directory = os.getcwd()
print("当前目录:", directory)

  • os.chdir():用于改变当前的工作目录。

    工作目录是指当前正在执行的脚本所在的目录,通过使用 os.chdir()方法,可以在脚本执行过程中切换到不同的目录。

import os
# 当前工作目录
print("当前工作目录:", os.getcwd())

# 切换到指定目录
os.chdir("/path/to/directory")

# 切换后的工作目录
print("切换后的工作目录:", os.getcwd())

path 方法 说明
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.path.split(path) 分割路径
os.path.join(path) 拼接路径
os.path.exists(path) 判断路径是否存在
os.path.isdir(path) 判断是否是目录
os.path.isfile(path) 判断是否是文件
os.path.getsize(path) 获取文件大小

  • os.path.abspath(path):获取绝对路径。path 是要获取绝对路径的路径。
import os
# 获取绝对路径
absolute_path = os.path.abspath('relative/path/to/file.txt')
print("Absolute Path:", absolute_path)

  • os.path.basename(path):返回指定路径的基本名称(不包含父目录路径)
import os

# 获取基本名称
base_name = os.path.basename('/path/to/file.txt')
print("Base Name:", base_name)

  • os.path.dirname(path):返回指定路径的父目录路径。
import os

# 获取父目录路径
parent_directory = os.path.dirname('/path/to/file.txt')
print("父目录为:", parent_directory)

  • os.path.split(path):用于将一个路径拆分为目录部分和文件名部分。
import os

path = '/home/user/file.txt'
result = os.path.split(path)
print(result)

  • os.path.join(path):用于连接多个路径部分。它将多个路径片段组合在一起,形成一个新的路径字符串。
import os

path1 = '\home\user'
path2 = 'file.txt'
result = os.path.join(path1, path2)
print(result)

  • os.path.exists(path) 判断路径是否存在(可以是文件或目录)
import os

# 判断路径是否存在
path_to_check = '/path/to/file.txt'
if os.path.exists(path_to_check):
    print("路径存在")
else:
    print("路径不存在")

  • os.path.isdir(path) 判断是否是目录
import os

# 判断路径是否是目录
directory_path = '/path/to/directory'
if os.path.isdir(directory_path):
    print("它是一个目录")
else:
    print("它不是一个目录或路径不存在")

  • os.path.isfile(path) 判断是否是文件
import os

# 判断路径是否是文件
file_path = '/path/to/file.txt'
if os.path.isfile(file_path):
    print("它是一个文件")
else:
    print("它不是文件或路径不存在.")

  • os.path.getsize(path) 获取文件大小
import os
print(os.path.getsize("main.py"))

目录和文件操作

  • os.listdir():列出当前目录内容
import os

# 获取目录内容
directory_path = '/path/to/directory'
content = os.listdir(directory_path)
print("Directory Content:", content)

  • os.mkdir():创建一个新目录
import os

# 创建新目录
new_directory = '/path/to/new_directory'
os.mkdir(new_directory)

  • os.makedirs():递归创建多级目录
# 创建多级目录
nested_directory = '/path/to/nested/directory'
os.makedirs(nested_directory)

  • os.rmdir():删除空目录
import os

# 删除目录
directory_to_delete = '/path/to/directory_to_delete'
os.rmdir(directory_to_delete)

  • os.rename():重命名目录
import os

# 重命名目录
old_directory_name = '/path/to/old_directory'
new_directory_name = '/path/to/new_directory'
os.rename(old_directory_name, new_directory_name)

  • os.remove():删除文件(只能删除文件,不能删除目录)
import os

# 删除指定的文件
file_to_delete = '/path/to/file.txt'
os.remove(file_to_delete)

其它操作

  • os.name:获取系统名称,在 Windows 上,os.name 值为 nt。在 Linux、macOS,os.nameposix
import os

# 获取当前平台名称
platform_name = os.name
print("Platform Name:", platform_name)

  • os.chmod(path, mode):更改文件权限模式。 path 是要更改权限的文件路径,mode 是权限模式,通常用八进制表示,如 0o755
import os

# 更改文件权限模式为-rwxr-xr-x
file_path = '/path/to/file.txt'
os.chmod(file_path, 0o755)

  • os.sep:用于表示操作系统特定的路径分隔符。在 Windows 操作系统上,路径分隔符是反斜杠 \ ;而在 POSIX 系统(如 Linux、macOS 等)上,路径分隔符是正斜杠 /
import os

# 获取路径分隔符
path_separator = os.sep
print("Path Separator:", path_separator)

总结

  • 路径操作
  • 目录和文件操作
  • 其它操作