首页 > 编程语言 >【python】os模块详解

【python】os模块详解

时间:2024-06-10 21:58:06浏览次数:28  
标签:文件 python 详解 import print path os 目录

Python 的 os 模块提供了与操作系统交互的功能。它提供了很多函数,用于读取或修改系统目录和文件、运行系统命令、处理系统环境变量等。以下是一些常用的 os 模块函数及其简要说明:

一、目录和文件操作

  1. 获取当前工作目录

    • os.getcwd()
    import os
    current_dir = os.getcwd()
    print(f"当前工作目录: {current_dir}")
    
  2. 改变当前工作目录

    • os.chdir(path)
    import os
    os.chdir("/path/to/new/directory")
    
  3. 列出指定目录下的文件和子目录

    • os.listdir(path)
    import os
    contents = os.listdir("/path/to/directory")
    print(f"目录内容: {contents}")
    
  4. 创建目录

    • os.mkdir(path) 创建单级目录
    • os.makedirs(path) 递归创建多层目录
    import os
    os.mkdir("/path/to/new/directory")  # 创建单级目录
    os.makedirs("/path/to/new/nested/directory")  # 递归创建多层目录
    
  5. 删除目录

    • os.rmdir(path) 删除单级空目录
    • os.removedirs(path) 递归删除空目录
    import os
    os.rmdir("/path/to/empty/directory")  # 删除单级空目录
    os.removedirs("/path/to/nested/empty/directories")  # 递归删除空目录
    
  6. 删除文件

    • os.remove(path)
    import os
    os.remove("/path/to/file.txt")
    
  7. 重命名文件或目录

    • os.rename(src, dst)
    import os
    os.rename("/path/to/oldname.txt", "/path/to/newname.txt")
    

二、路径操作

  1. 连接路径

    • os.path.join(path, *paths)
    import os
    path = os.path.join("/home", "user", "documents", "file.txt")
    print(f"连接后的路径: {path}")
    
  2. 获取绝对路径

    • os.path.abspath(path)
    import os
    abspath = os.path.abspath("/path/to/file.txt")
    print(f"绝对路径: {abspath}")
    
  3. 获取基本文件名

    • os.path.basename(path)
    import os
    filename = os.path.basename("/path/to/file.txt")
    print(f"基本文件名: {filename}")
    
  4. 获取目录名

    • os.path.dirname(path)
    import os
    dirname = os.path.dirname("/path/to/file.txt")
    print(f"目录名: {dirname}")
    

三、文件和目录检查

  1. 检查路径是否存在

    • os.path.exists(path)
    import os
    exists = os.path.exists("/path/to/file_or_directory")
    print(f"路径是否存在: {exists}")
    
  2. 检查路径是否为文件

    • os.path.isfile(path)
    import os
    isfile = os.path.isfile("/path/to/file.txt")
    print(f"路径是否为文件: {isfile}")
    
  3. 检查路径是否为目录

    • os.path.isdir(path)
    import os
    isdir = os.path.isdir("/path/to/directory")
    print(f"路径是否为目录: {isdir}")
    

四、文件属性

  1. 获取文件大小

    • os.path.getsize(path)
    import os
    size = os.path.getsize("/path/to/file.txt")
    print(f"文件大小: {size} 字节")
    

五、执行系统命令

  • os.system(command):在子shell中执行系统命令。
import os
os.system('ls -l')  # 执行系统命令ls -l

六、环境变量操作

  • os.environ:代表当前的环境变量字典。
  • os.getenv(key, default=None):获取环境变量的值,若不存在则返回默认值。
  • os.putenv(key, value):设置环境变量的值。
import os
# 获取环境变量
path = os.getenv('PATH')
print(f'PATH environment variable: {path}')

# 设置环境变量
os.putenv('MY_VAR', 'my_value')

七、进程管理

虽然os模块提供了如os.fork()(Unix系统)等进程管理函数,但通常建议使用更高级的subprocess模块来处理进程管理。

八、其他实用函数

  • os.urandom(size):生成指定字节数的随机字节串,常用于加密。
import os
random_bytes = os.urandom(16)  # 生成16字节的随机数据
print(random_bytes)

九、文件描述符操作

  • os.fdopen(fd, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True):根据文件描述符返回一个文件对象。
  • os.dup(fd):复制文件描述符。
  • os.dup2(fd, fd2):将一个文件描述符复制到另一个文件描述符。

这些函数通常用于低级的文件I/O操作,例如在使用os.pipe()创建的管道中。

十、设备文件操作

  • os.makedev(major, minor):根据主设备号和次设备号创建一个原始设备号,主要在Unix-like系统中使用。
  • os.major(device)os.minor(device):分别从原始设备号中提取主设备号和次设备号。

注意事项

  • 在使用os模块进行文件和目录操作时,需要注意权限问题,确保程序有足够的权限进行读写或执行操作。
  • 在处理文件和目录路径时,要注意路径分隔符在不同操作系统中的差异(例如,Windows使用\,而Unix-like系统使用/)。os.path模块提供了跨平台的路径操作函数,可以自动处理这些差异。
  • 当使用os.system()执行系统命令时,要小心注入攻击等安全问题。如果可能的话,使用subprocess模块来替代它,因为它提供了更强大且安全的功能来执行外部命令。

标签:文件,python,详解,import,print,path,os,目录
From: https://blog.csdn.net/MAOZI8/article/details/139582628

相关文章

  • Centos7.9部署单节点K8S环境
    Centos7.9部署单节点K8S环境通过Centosextras镜像源安装K8S环境,优点是方便快捷,缺点是版本较低,安装后的版本为1.5.2。1.准备工作关闭selinux[root@localhost~]#cat/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantake......
  • Mathematica Partial Fraction Decomposition
    遇到的问题Mathematica中有一个自带的部分分式分解函数Apart。In:=Apart[(-3+x)/((-1+x)(1+x))]Out:=-(1/(-1+x))+2/(1+x)但是Apart遇到分解结果中带无理数的就会摆烂:In:=Apart[x/(1-x-x^2)]Out:=-(x/(-1+x+x^2))解决方案1我们有一个......
  • OSI七层模型
    七层协议含义以及作⽤:1、应⽤层为应⽤程序提供交互服务。在互联⽹中的应⽤层协议很多,如域名系统DNS,⽀持万维⽹应⽤的HTTP协议,⽀持电⼦邮件的SMTP协议等。2、表示层主要负责数据格式的转换,如加密解密、转换翻译、压缩解压缩等。3、会话层负责在⽹络中的两节点之间建⽴、维持......
  • Python异常处理的几种方法
    Python的异常处理语句主要包括以下几个关键字:try/excepttry块包含可能会引发异常的代码。except块则包含用于处理这些异常的代码。try:#尝试执行的代码块result=10/0exceptZeroDivisionError:#当发生ZeroDivisionError异常时执行的代码块......
  • 【工作必备知识】Linux磁盘I/O故障排查分析定位 iostat 介绍
    【工作必备知识】Linux磁盘I/O故障排查分析定位iostat介绍大家好,我是秋意零。前言:今天,介绍Linux磁盘I/O故障排查时,必备命令iostat。该命令是监视系统I/O设备使用负载,它可以实时监视IO设备,从而帮助我们进行分析定位问题。iostat命令介绍iostat命令:监视系统I/O设备使......
  • python大学生创新创业大赛竞赛志愿者招募平台_s64ag
    大学生作为我国的年轻高级知识人群,有着较为丰富的知识储备和相较于其他高级知识份子所欠缺的创造力,是符合在我国十三五规划的创业主要人群。但因为大学生这个群体社会实践经验与能力的欠缺,与创业的成功要素所矛盾,导致大部分大学生创业在初期就自行夭折,使大学生创业成为了国家......
  • 用python进行选岗
    importpandasaspdfromopenpyxlimportworkbook#新建一张表存储提取数据wb=workbook.Workbook()#使用pandas的read_excel函数,设置参数sheet_name为None来获取所有sheet的名称sheet_names=list(pd.read_excel('filename.xls',sheet_name=None).keys())forsh......
  • pydispatch:Python中的事件驱动编程
    pydispatch是一个轻量级的事件调度器,广泛应用于实现观察者模式。它允许对象之间通过事件进行通信,而无需直接引用彼此,从而实现代码的模块化和可维护性。1.安装pydispatch使用pip安装pydispatch库:pipinstallpydispatch 2.基本概念pydispatch库中有3个核心概念:信号(Sig......
  • 2024.6.10(beta阶段的postmortem报告)
    beta阶段的postmortem报告1.每个成员在beta阶段的实践和alpha阶段有何改进?成员Beta阶段的实践和alpha阶段有何改进李天宇beta阶段相对于alpha阶段对调用AI和布置网页到服务器等相关技术更为熟悉。胡翔beta阶段相对于alpha阶段更加熟悉了C#和unity这两门语言,对游......
  • 全网最全!解决VirtualBox或VMware启动虚拟机时报错问题“不能为虚拟电脑打开一个新任务
    我自己下载并配置完VritualBox和OpenEuler之后帮助了几个朋友和我的室友在她们的电脑上下载安装时出现了不同的问题,下面我将简单解释一下如何解决配置时出现的两个无法启动虚拟器的问题。目录问题:“不能为虚拟电脑XX打开一个新任务”和“ErrorInsuplibOslnit”解决方法:1......