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

Python中的OS库

Python中的OS库

  • 1. 导入os模块
  • 2. 文件和目录操作
    • 2.1 获取当前工作目录
    • 2.2 更改当前工作目录
    • 2.3 列出目录内容
    • 2.4 检查路径是否存在
    • 2.5 检查是否为文件或目录
    • 2.6 创建目录
    • 2.7 删除目录
    • 2.8 重命名文件或目录
    • 2.9 删除文件
    • 2.10 文件属性
  • 3. 环境变量
    • 3.1 获取环境变量
    • 3.2 设置环境变量
  • 4. 进程管理
    • 4.1 获取当前进程ID
    • 4.2 执行系统命令
    • 4.3 使用subprocess模块执行命令
  • 5. 操作系统信息
    • 5.1 获取操作系统名称
    • 5.2 获取文件分隔符
    • 5.3 获取换行符
  • 6. 文件路径操作
    • 6.1 连接路径
    • 6.2 分割路径
    • 6.3 获取文件扩展名
  • 7. 文件操作示例

在Python中os模块提供了许多与操作系统进行交互的功能,如文件和目录操作、环境变量访问、进程管理等。它是Python标准库的一部分,无需额外安装即可使用

1. 导入os模块

import os

2. 文件和目录操作

2.1 获取当前工作目录

可以使用os.getcwd()函数获取当前工作目录

current_directory = os.getcwd()
print("当前工作目录:", current_directory)

2.2 更改当前工作目录

使用os.chdir(path)可以更改当前工作目录

os.chdir('/path/to/new/directory')
print("新的工作目录:", os.getcwd())

2.3 列出目录内容

os.listdir(path)函数可以列出指定目录下的所有文件和子目录

contents = os.listdir('.')
print("目录内容:", contents)

2.4 检查路径是否存在

使用os.path.exists(path)可以检查指定路径是否存在

path = '/path/to/check'
if os.path.exists(path):
    print("路径存在")
else:
    print("路径不存在")

2.5 检查是否为文件或目录

os.path.isfile(path)和os.path.isdir(path)分别用于检查路径是否为文件或目录

if os.path.isfile(path):
    print("是文件")
elif os.path.isdir(path):
    print("是目录")
else:
    print("未知类型")

2.6 创建目录

使用os.mkdir(path)创建单级目录,使用os.makedirs(path)创建多级目录

os.mkdir('new_directory')
os.makedirs('parent/child')

2.7 删除目录

使用os.rmdir(path)删除空目录,使用shutil.rmtree(path)删除非空目录

import shutil
os.rmdir('empty_directory')
shutil.rmtree('non_empty_directory')

2.8 重命名文件或目录

使用os.rename(src, dst)重命名文件或目录

os.rename('old_name.txt', 'new_name.txt')

2.9 删除文件

使用os.remove(path)删除文件

os.remove('file_to_delete.txt')

2.10 文件属性

获取文件大小使用os.path.getsize(path),获取修改时间使用os.path.getmtime(path)

file_size = os.path.getsize('some_file.txt')
modification_time = os.path.getmtime('some_file.txt')
print("文件大小:", file_size, "字节")
print("修改时间:", modification_time)

3. 环境变量

3.1 获取环境变量

使用os.getenv(variable_name)获取指定环境变量的值

value = os.getenv('HOME')
print("HOME环境变量:", value)

3.2 设置环境变量

使用os.environ[‘variable_name’] = value设置环境变量

os.environ['MY_VAR'] = 'my_value'
print("MY_VAR环境变量:", os.getenv('MY_VAR'))

4. 进程管理

4.1 获取当前进程ID

使用os.getpid()获取当前进程的ID

pid = os.getpid()
print("当前进程ID:", pid)

4.2 执行系统命令

使用os.system(command)执行系统命令

os.system('ls -l')

4.3 使用subprocess模块执行命令

推荐使用subprocess模块来执行外部命令,因为它更灵活和安全

import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print("命令输出:", result.stdout)

5. 操作系统信息

5.1 获取操作系统名称

使用os.name获取操作系统的名称

print("操作系统名称:", os.name)

5.2 获取文件分隔符

使用os.sep获取当前操作系统使用的路径分隔符

print("路径分隔符:", os.sep)

5.3 获取换行符

使用os.linesep获取当前操作系统使用的换行符

print("换行符:", os.linesep)

6. 文件路径操作

6.1 连接路径

使用os.path.join(path, *paths)连接路径部件

path = os.path.join('directory', 'subdirectory', 'file.txt')
print("连接后的路径:", path)

6.2 分割路径

使用os.path.split(path)分割路径为目录和文件名

directory, filename = os.path.split('/path/to/file.txt')
print("目录:", directory)
print("文件名:", filename)

6.3 获取文件扩展名

使用os.path.splitext(path)分割文件名和扩展名

filename, extension = os.path.splitext('file.txt')
print("文件名:", filename)
print("扩展名:", extension)

7. 文件操作示例

import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)

# 列出目录内容
contents = os.listdir(current_dir)
print("目录内容:", contents)

# 检查路径是否存在
path = 'example_dir'
if not os.path.exists(path):
    os.mkdir(path)
    print("创建目录:", path)
else:
    print("目录已存在:", path)

# 创建文件
file_path = os.path.join(path, 'example.txt')
with open(file_path, 'w') as file:
    file.write("Hello, os module!")

# 检查文件是否存在
if os.path.isfile(file_path):
    print("文件存在:", file_path)
else:
    print("文件不存在:", file_path)

# 获取文件大小
file_size = os.path.getsize(file_path)
print("文件大小:", file_size, "字节")

# 删除文件
os.remove(file_path)
print("删除文件:", file_path)

# 删除目录
os.rmdir(path)
print("删除目录:", path)

http://www.kler.cn/a/467989.html

相关文章:

  • 2025第1周 | JavaScript中的正则表达式
  • 弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了
  • Go语言的数据类型
  • doris:基于 Arrow Flight SQL 的高速数据传输链路
  • MySQL的三大日志
  • 今日头条ip属地根据什么显示?不准确怎么办
  • 写一个类模板三个模板参数K,V,M,参数是函数(函数参数、lambda传参、函数指针)
  • 【CSS】 ---- CSS 实现图片背景清除的滑动效果三种方法
  • 2025年全面的AI学习计划
  • HTML——69.表单验证属性
  • 游戏引擎学习第71天
  • 周末总结(2024/01/04)
  • C语言:cJSON将struct结构体与JSON互相转换
  • 【音频伴奏分离】UVR5软件介绍
  • 安卓Activity执行finish后onNewIntent也执行了
  • CSS3——3. 书写格式二
  • Linux驱动开发(18):linux驱动并发与竞态
  • Mono里运行C#脚本22—mono_init_internal
  • 在DJI无人机上运行VINS-FUISON(PSDK 转 ROS)
  • leetcode-------mysql
  • PyTorch快速入门教程【小土堆】之优化器
  • STM32 拓展 低功耗案例3:待机模式 (register)
  • SZY206-2016水资源监测数据传输规约 基础架构
  • 深入解析 Redisson 分布式限流器 RRateLimiter 的原理与实现
  • python识别outlook邮件并且将pdf文件作为附件发送邮件
  • 矩阵运算提速——玩转opencv::Mat