当前位置: 首页 > news >正文

pythonSTL---os

os 模块是 Python 标准库中一个非常重要的模块,它提供了一种方便的方式来与操作系统进行交互。

1. 导入 os 模块

在使用 os 模块的功能之前,需要先导入它:

import os

2. 操作系统相关信息

2.1 os.name

返回当前操作系统的名称。常见的值有 'posix'(表示类 Unix 系统,如 Linux、macOS)和 'nt'(表示 Windows 系统)。

import os
print(os.name)
2.2 os.uname()(仅适用于类 Unix 系统)

返回一个包含操作系统相关信息的元组,包括系统名称、节点名称、版本号等。

import os
try:
    print(os.uname())
except AttributeError:
    print("该方法仅适用于类 Unix 系统。")

3. 工作目录操作

3.1 os.getcwd()

获取当前工作目录的路径。

import os
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
3.2 os.chdir(path)

改变当前工作目录到指定的路径。

import os
new_dir = '/path/to/new/directory'
try:
    os.chdir(new_dir)
    print(f"已将工作目录更改为: {os.getcwd()}")
except FileNotFoundError:
    print("指定的目录不存在。")

4. 目录和文件操作

4.1 os.listdir(path='.')

返回指定目录下的所有文件和文件夹的名称列表。如果不指定路径,默认是当前工作目录。

import os
files_and_folders = os.listdir()
for item in files_and_folders:
    print(item)
4.2 os.mkdir(path)

创建一个新的目录。如果目录已经存在,会抛出 FileExistsError 异常。

import os
new_dir = 'new_directory'
try:
    os.mkdir(new_dir)
    print(f"已创建目录: {new_dir}")
except FileExistsError:
    print("目录已存在。")
4.3 os.makedirs(path, exist_ok=False)

递归创建目录。如果 exist_okTrue,当目录已经存在时不会抛出异常。

import os
new_dir = 'parent_dir/child_dir'
try:
    os.makedirs(new_dir, exist_ok=True)
    print(f"已创建目录: {new_dir}")
except FileExistsError:
    print("目录已存在。")
4.4 os.rmdir(path)

删除一个空目录。如果目录不为空,会抛出 OSError 异常。

import os
dir_to_remove = 'empty_directory'
try:
    os.rmdir(dir_to_remove)
    print(f"已删除目录: {dir_to_remove}")
except OSError:
    print("目录不为空或不存在。")
4.5 os.removedirs(path)

递归删除目录。如果目录不为空,会抛出 OSError 异常。

import os
dir_to_remove = 'parent_dir/child_dir'
try:
    os.removedirs(dir_to_remove)
    print(f"已删除目录: {dir_to_remove}")
except OSError:
    print("目录不为空或不存在。")
4.6 os.remove(path)

删除指定的文件。

import os
file_to_remove = 'test.txt'
try:
    os.remove(file_to_remove)
    print(f"已删除文件: {file_to_remove}")
except FileNotFoundError:
    print("文件不存在。")
4.7 os.rename(src, dst)

重命名文件或目录。

import os
old_name = 'old_file.txt'
new_name = 'new_file.txt'
try:
    os.rename(old_name, new_name)
    print(f"已将 {old_name} 重命名为 {new_name}")
except FileNotFoundError:
    print("源文件或目录不存在。")
4.8 os.replace(src, dst)

将源文件或目录移动或替换为目标文件或目录。如果目标文件已存在,会被覆盖。

import os
src = 'source_file.txt'
dst = 'destination_file.txt'
try:
    os.replace(src, dst)
    print(f"已将 {src} 移动或替换为 {dst}")
except FileNotFoundError:
    print("源文件或目录不存在。")

5. 文件和目录路径操作

5.1 os.path.join(path, *paths)

将多个路径组合成一个完整的路径。

import os
base_dir = '/home/user'
sub_dir = 'documents'
file_name = 'test.txt'
full_path = os.path.join(base_dir, sub_dir, file_name)
print(full_path)
5.2 os.path.exists(path)

检查指定的路径是否存在。

import os
path = '/path/to/some/file.txt'
if os.path.exists(path):
    print("路径存在。")
else:
    print("路径不存在。")
5.3 os.path.isfile(path)

检查指定的路径是否为文件。

import os
path = '/path/to/some/file.txt'
if os.path.isfile(path):
    print("该路径是一个文件。")
else:
    print("该路径不是一个文件。")
5.4 os.path.isdir(path)

检查指定的路径是否为目录。

import os
path = '/path/to/some/directory'
if os.path.isdir(path):
    print("该路径是一个目录。")
else:
    print("该路径不是一个目录。")
5.5 os.path.split(path)

将路径拆分为目录和文件名两部分,返回一个元组。

import os
path = '/home/user/documents/test.txt'
dir_name, file_name = os.path.split(path)
print(f"目录: {dir_name}")
print(f"文件名: {file_name}")
5.6 os.path.splitext(path)

将路径拆分为文件名和文件扩展名两部分,返回一个元组。

import os
path = '/home/user/documents/test.txt'
file_name, ext = os.path.splitext(path)
print(f"文件名: {file_name}")
print(f"文件扩展名: {ext}")

6. 环境变量操作

6.1 os.environ

返回一个包含当前环境变量的字典。

import os
for key, value in os.environ.items():
    print(f"{key}: {value}")
6.2 os.getenv(key, default=None)

获取指定环境变量的值。如果环境变量不存在,返回默认值。

import os
path_variable = os.getenv('PATH')
print(f"PATH 环境变量的值: {path_variable}")
6.3 os.putenv(key, value)

设置环境变量的值。注意,在某些系统上,这个方法可能不会立即生效。

import os
os.putenv('MY_VARIABLE', 'my_value')
print(os.getenv('MY_VARIABLE'))

7. 执行系统命令

7.1 os.system(command)

在系统的 shell 中执行指定的命令,并返回命令的返回值。

import os
return_code = os.system('ls -l')
print(f"命令返回值: {return_code}")
7.2 os.popen(command)

执行指定的命令,并返回一个文件对象,可以通过该对象读取命令的输出。

import os
output = os.popen('ls -l').read()
print(output)

8. 进程相关操作(部分系统适用)

8.1 os.getpid()

返回当前进程的进程 ID。

import os
pid = os.getpid()
print(f"当前进程 ID: {pid}")
8.2 os.getppid()

返回当前进程的父进程的进程 ID。

import os
ppid = os.getppid()
print(f"父进程 ID: {ppid}")

相关文章:

  • Spring Boot 启动失败:Failed to start bean ‘documentationPluginsBootstrapper’ 解决方案
  • 在 Linux 中,lsblk 命令输出内容解释
  • Linux网络编程——TCP网络通信多线程处理
  • 大白话JavaScript详细描述基于原型链实现对象继承的步骤,分析其在共享属性、内存占用等方面的优缺点
  • OpenHands:OpenDevin的升级版,由人工智能驱动的软件开发代理平台
  • stm32第四天控制蜂鸣器
  • mmdet3d.models.utils的clip_sigmoid理解
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.1.1基于ES的语义搜索(BERT嵌入向量)
  • Chainlit 实现SSO单点登录CAS授权完整代码图文教程
  • Python:被装饰的函数,多个装饰器的装饰过程
  • html css 笔记
  • 什么是设计模式
  • Matlab 双线性插值(二维)
  • TypeScript基础
  • Uniapp使用地图的时候滑动上层的view地图也滑动
  • 【DevOps】Backstage介绍及如何在Azure Kubernetes Service上进行部署
  • 附下载 | 2024 OWASP Top 10 基础设施安全风险.pdf
  • Shader中着色器的编译目标级别
  • vue3数据双向绑定解析
  • Unity3D 着色器优化(Shader Optimization)
  • 一企业采购国产化肥冒充“挪威化肥”:7人被抓获
  • 紧盯大V、网红带货肉制品,整治制售假劣肉制品专项行动开展
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高
  • 打造多元文旅消费场景,第四届长三角城市戏剧节启幕
  • 福特汽车撤回业绩指引,警告关税或造成15亿美元利润损失
  • 五一假期上海接待游客1650万人次,全要素旅游交易总额超200亿元