Python 标准库中的 os 模块提供了访问操作系统功能的接口,包括文件和目录操作、进程管理、环境变量、时间等功能。以下是 os 模块的主要功能及其应用场景:
- 获取当前工作目录:通过 os.getcwd() 函数获取当前所在的工作目录。
import os
cwd = os.getcwd()
print(cwd)
- 改变工作目录:通过 os.chdir() 函数更改当前工作目录。
import os
os.chdir('/home/user/')
- 列出指定目录下的文件和子目录:通过 os.listdir() 函数列出指定目录下的所有文件和子目录。
import os
files = os.listdir('/home/user/')
print(files)
- 创建新目录:通过 os.mkdir() 函数创建新的目录。
import os
os.mkdir('/home/user/my_folder')
- 递归地创建多层目录:通过 os.makedirs() 函数递归地创建新的目录。
import os
os.makedirs('/home/user/my_folder/sub_folder')
- 移除指定文件或目录:通过 os.remove() 和 os.rmdir() 函数分别移除指定的文件和目录。
import os
os.remove('/home/user/my_file.txt')
os.rmdir('/home/user/my_folder')
- 递归地移除指定目录及其下所有文件和子目录:通过 shutil.rmtree() 函数递归地移除指定目录及其下所有文件和子目录。
import shutil
shutil.rmtree('/home/user/my_folder')
- 判断指定路径是否为文件或目录:通过 os.path.isfile() 和 os.path.isdir() 函数分别判断指定路径是否为文件或目录。
import os
path = '/home/user/my_file.txt'
if os.path.isfile(path):
print('This is a file.')
elif os.path.isdir(path):
print('This is a directory.')
- 组合多个路径成为一个完整的路径:通过 os.path.join() 函数将多个路径组合成一个完整的路径。
import os
path = os.path.join('/home', 'user', 'my_folder', 'my_file.txt')
print(path)
- 获取文件或目录的绝对路径:通过 os.path.abspath() 函数获得指定路径的绝对路径。
import os
path = 'my_folder/my_file.txt'
abs_path = os.path.abspath(path)
print(abs_path)
- 获取文件或目录的基本名称:通过 os.path.basename() 函数获取指定路径的基本名称(不包括路径)。
import os
path = '/home/user/my_folder/my_file.txt'
basename = os.path.basename(path)
print(basename)
- 获取文件或目录的上层目录:通过 os.path.dirname() 函数获取指定路径的上层目录。
import os
path = '/home/user/my_folder/my_file.txt'
dirname = os.path.dirname(path)
print(dirname)
- 判断文件或目录是否存在:通过 os.path.exists() 函数判断指定路径的文件或目录是否存在。
import os
path = '/home/user/my_folder/my_file.txt'
if os.path.exists(path):
print('This file exists.')
else:
print('This file does not exist.')
- 获取文件或目录的大小:通过 os.path.getsize() 函数获取指定文件或目录的大小。
import os
path = '/home/user/my_file.txt'
size = os.path.getsize(path)
print(size)
- 获取文件或目录的创建时间和最后修改时间:通过 os.path.getctime() 和 os.path.getmtime() 函数分别获取指定文件或目录的创建时间和最后修改时间。
import os
import time
path = '/home/user/my_file.txt'
ctime = os.path.getctime(path)
mtime = os.path.getmtime(path)
print('Created:', time.ctime(ctime))
print('Modified:', time.ctime(mtime))
- 检查指定路径是否为绝对路径:通过 os.path.isabs() 函数检查指定路径是否为绝对路径。
import os
path = '/home/my_folder/my_file.txt'
if os.path.isabs(path):
print('This is an absolute path.')
else:
print('This is a relative path.')
- 将路径拆分为目录和文件名:通过 os.path.split() 函数将路径拆分为目录和文件名两部分。
import os
path = '/home/user/my_folder/my_file.txt'
dirname, basename = os.path.split(path)
print('Directory:', dirname)
print('Filename:', basename)
- 执行系统命令:通过 os.system() 函数执行系统命令。
import os
os.system('ls')
- 获取环境变量:通过 os.environ 字典获取当前环境的所有环境变量。
import os
env = os.environ
print(env)
- 获取操作系统类型和版本号:通过 platform.system() 和 platform.version() 函数获取当前操作系统类型和版本号。
import platform
system = platform.system()
version = platform.version()
print('System:', system)
print('Version:', version)
注意事项:
- 某些操作需要管理员权限才能执行,需谨慎使用。
- 需要在程序中处理路径分隔符的兼容性,根据不同的操作系统使用不同的分隔符。
- 在创建和删除目录或文件时,必须小心谨慎,确保不会意外删除重要数据。
整理不易欢迎点赞转发收藏,关注我每天分享运维小知识。