Python标准库之os模块常用方法

一、os模块简介

os模块是Python标准库中与操作系统交互的一个重要模块。它提供了非常丰富的方法来处理文件、目录以及与操作系统相关的操作,让我们可以编写跨平台的代码,无论是在Windows、Linux还是macOS系统上都能运行。

二、文件和目录操作

  1. 获取当前工作目录

    import os
    current_dir = os.getcwd()
    print(current_dir)
    

    这里使用os.getcwd()方法获取当前Python脚本所在的工作目录。它返回一个字符串,表示当前工作目录的路径。

  2. 改变当前工作目录

    import os
    new_dir = '/home/user/some_folder'
    try:os.chdir(new_dir)print(f"成功切换到目录: {os.getcwd()}")
    except FileNotFoundError:print(f"目录 {new_dir} 不存在")
    

    os.chdir()方法用于改变当前工作目录。如果指定的目录不存在,会抛出FileNotFoundError异常。

  3. 创建目录

    • 创建单个目录
    import os
    new_dir = 'new_folder'
    try:os.mkdir(new_dir)print(f"目录 {new_dir} 创建成功")
    except FileExistsError:print(f"目录 {new_dir} 已存在")
    

    os.mkdir()方法用于创建一个新的目录。如果目录已经存在,会抛出FileExistsError异常。

    • 创建多级目录
    import os
    new_dir = 'parent_folder/child_folder/grandchild_folder'
    try:os.makedirs(new_dir)print(f"目录 {new_dir} 创建成功")
    except FileExistsError:print(f"目录 {new_dir} 已存在")
    

    os.makedirs()方法可以递归地创建多级目录。同样,如果目录已存在,会抛出FileExistsError异常。

  4. 删除目录

    • 删除单个空目录
    import os
    dir_to_delete = 'empty_folder'
    try:os.rmdir(dir_to_delete)print(f"目录 {dir_to_delete} 删除成功")
    except FileNotFoundError:print(f"目录 {dir_to_delete} 不存在")
    except OSError:print(f"目录 {dir_to_delete} 不为空或无法删除")
    

    os.rmdir()方法只能删除空目录。如果目录不存在,会抛出FileNotFoundError异常;如果目录不为空,会抛出OSError异常。

    • 删除非空目录(需要使用shutil模块辅助)
    import os
    import shutil
    non_empty_dir = 'non_empty_folder'
    try:shutil.rmtree(non_empty_dir)print(f"目录 {non_empty_dir} 删除成功")
    except FileNotFoundError:print(f"目录 {non_empty_dir} 不存在")
    

    shutil.rmtree()方法可以删除非空目录及其所有内容。

  5. 列出目录内容

    import os
    dir_path = '.'
    contents = os.listdir(dir_path)
    for item in contents:print(item)
    

    os.listdir()方法返回指定目录中的所有文件和目录名的列表。这里传入.表示当前目录。

三、文件操作

  1. 重命名文件或目录

    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(f"文件 {old_name} 不存在")
    

    os.rename()方法用于重命名文件或目录。如果源文件不存在,会抛出FileNotFoundError异常。

  2. 删除文件

    import os
    file_to_delete = 'file_to_delete.txt'
    try:os.remove(file_to_delete)print(f"文件 {file_to_delete} 删除成功")
    except FileNotFoundError:print(f"文件 {file_to_delete} 不存在")
    

    os.remove()方法用于删除文件。如果文件不存在,会抛出FileNotFoundError异常。

四、操作系统相关信息获取

  1. 获取操作系统名称

    import os
    os_name = os.name
    if os_name == 'posix':print("这是类Unix系统,如Linux或macOS")
    elif os_name == 'nt':print("这是Windows系统")
    

    os.name属性返回操作系统的名称,posix表示类Unix系统,nt表示Windows系统。

  2. 获取环境变量

    import os
    path_env = os.getenv('PATH')
    print(f"PATH 环境变量: {path_env}")
    

    os.getenv()方法用于获取指定环境变量的值。这里获取PATH环境变量,它包含了系统用于查找可执行文件的目录列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用AI让数据可视化

1. 从问卷星上下载一份答题结果。 序号用户ID提交答卷时间所用时间来源来源详情来自IP总分1、《中华人民共和国电子商务法》正式实施的时间是()。2、()可以判断企业在行业中所处的地位。3、()是指店铺内有…

K8S学习之基础三十五:k8s之Prometheus部署模式

Prometheus 有多种部署模式,适用于不同的场景和需求。以下是几种常见的部署模式: 1. 单节点部署 这是最简单的部署模式,适用于小型环境或测试环境。 特点: 单个 Prometheus 实例负责所有的数据采集、存储和查询。配置简单&…

【第14节】windows sdk编程:进程与线程介绍

目录 一、进程与线程概述 1.1 进程查看 1.2 何为进程 1.3 进程的创建 1.4 进程创建实例 1.5 线程查看 1.6 何为线程 1.7 线程的创建 1.8 线程函数 1.9 线程实例 二、内核对象 2.1 何为内核对象 2.2 内核对象的公共特点 2.3 内核对象句柄 2.4 内核对象的跨进程访…

Python简单爬虫实践案例

学习目标 能够知道Web开发流程 能够掌握FastAPI实现访问多个指定网页 知道通过requests模块爬取图片 知道通过requests模块爬取GDP数据 能够用pyecharts实现饼图 能够知道logging日志的使用 一、基于FastAPI之Web站点开发 1、基于FastAPI搭建Web服务器 # 导入FastAPI模…

uniapp工程中解析markdown文件

在uniapp中如何导入markdown文件,同时在页面中解析成html,请参考以下配置: 1. 安装以下3个依赖包 npm install marked highlight.js vite-plugin-markdown 2. 创建vite.config.js配置文件 // vite.config.js import { defineConfig } fro…

sass介绍

1、Sass简介 Sass 是一种 CSS 的预编译语言。它提供了 变量(variables)、嵌套(nested rules)、 混合(mixins)、 函数(functions)等功能,并且完全兼容 CSS 语法。Sass 能…

[JavaScript]如何利用作用域块避免闭包内存泄漏?

出自《你不知道的JavaScript》上卷 以下是本书给出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click会被回调在其他位置, 在addEventListener函数内…

leetcode hot100(五)

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你…

Unity 云渲染本地部署方案

Unity Render Streaming 云渲染环境搭建 0.安装 Unity Render Streaming 实现原理: 服务器与客户端实现功能包括: 详细内容见官方文档: 官方文档: https://docs.unity3d.com/Packages/com.unity.renderstreaming3.1/manual/tutorial.html Unity 流送云渲染介绍: …

洛谷 P3986 斐波那契数列

P3986 斐波那契数列 题目描述 定义一个数列: f ( 0 ) a , f ( 1 ) b , f ( n ) f ( n − 1 ) f ( n − 2 ) f(0) a, f(1) b, f(n) f(n - 1) f(n - 2) f(0)a,f(1)b,f(n)f(n−1)f(n−2) 其中 a, b 均为正整数,n ≥ 2。 问有多少种 (a, b)&…

【java面型对象进阶】------继承实例

继承结构下的标准Javabean 代码如下: package demo10;//定义员工父类 public class Employee {private String id;private String name;private double salary;//构造方法public Employee(){}public Employee(String id,String name,double salary){this.idid;thi…

Vitis 2024.1 无法正常编译custom ip的bug(因为Makefile里的wildcard)

现象:如果在vivado中,添加了自己的custom IP,比如AXI4 IP,那么在Vitis(2024.1)编译导出的原本的.xsa的时候,会构建build失败。报错代码是: "Compiling blank_test_ip..."…

【图论】并查集的学习和使用

目录 并查集是什么? 举个例子 组成 父亲数组: find函数: union函数: 代码实现: fa[] 初始化code: find code: 递归实现: 非递归实现: union code : 画图模拟: 路径压缩&#xff1a…

Java使用FFmpegFrameGrabber进行视频拆帧,结合Thumbnails压缩图片保存到文件夹

引入依赖 <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.17</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ja…

mysql与redis的日志策略

MySQL 和 Redis 在日志记录方面采用了不同的策略&#xff0c;分别对应写前日志&#xff08;Write-Ahead Logging, WAL&#xff09;和写后日志&#xff08;Write-After Logging&#xff09;。以下是它们的详细说明&#xff1a; 1. MySQL&#xff1a;写前日志&#xff08;Write-A…

nacos安装,服务注册,服务发现,远程调用3个方法

安装 点版本下载页面 服务注册 每个微服务都配置nacos的地址&#xff0c;都要知道 服务发现 2个是知道了解 远程调用基本实现 远程调用方法2&#xff0c;负载均衡API测试 远程调用方法3&#xff0c;注解 负载均衡的远程调用&#xff0c; 总结 面试题

Ubuntu Qt: no service found for - “org.qt-project.qt.mediaplayer“

1、前言 在一次项目过程中&#xff0c;因项目需求&#xff0c;需要将windows开发的Qt项目迁移到ubuntu系统中&#xff0c;且在某个功能项中需要播放音频&#xff0c;在windows系统中能够正常运行&#xff0c;但在ubuntu系统中却显示defaultServiceProvider::requestService(): …

Blender制作次表面材质

效果: 主要用沃罗诺伊纹理做出云絮感 然后EV开启次表面设置

用 pytorch 从零开始创建大语言模型(四):从零开始实现一个用于生成文本的GPT模型

从零开始创建大语言模型&#xff08;Python/pytorch &#xff09;&#xff08;四&#xff09;&#xff1a;从零开始实现一个用于生成文本的GPT模型 4 从零开始实现一个用于生成文本的GPT模型4.1 编写 L L M LLM LLM架构4.2 使用层归一化对激活值进行标准化4.3 使用GELU激活函数…

vmware tools灰化

Windows7 32位的某些版本&#xff0c;已经不被vmware支持。下面是解决方法&#xff1a; 安装kb4474419补丁包&#xff1a;https://www.catalog.update.microsoft.com/Search.aspx?qKB4474419网络共享。必须要虚拟机和主机可通信。此方法不错&#xff0c;但是操作起来太麻烦。…