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

Python教学-最常用的标准库之一——OS库

os 库是 Python 标准库中的一个模块,它提供了一种方便的方式来使用操作系统相关的功能。os 模块提供了很多函数,可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的 os 模块的功能和示例:

1. 文件和目录操作

1.1 当前工作目录
  • os.getcwd():获取当前工作目录。
  • os.chdir(path):改变当前工作目录。
import oscurrent_dir = os.getcwd()
print("当前工作目录:", current_dir)os.chdir('/path/to/new/directory')
new_dir = os.getcwd()
print("改变后的工作目录:", new_dir)
1.2 创建和删除目录
  • os.mkdir(path):创建单个目录。
  • os.makedirs(path, exist_ok=False):递归创建目录。如果 exist_ok=True,目录已存在时不报错。
  • os.rmdir(path):删除单个空目录。
  • os.removedirs(path):递归删除目录。
os.makedirs('dir1/dir2', exist_ok=True)
os.rmdir('dir1/dir2')  # 只能删除空目录
os.removedirs('dir1/dir2')  # 递归删除
1.3 列出目录内容
  • os.listdir(path):列出指定目录下的所有文件和目录。
files_and_dirs = os.listdir('.')
print("当前目录下的文件和目录:", files_and_dirs)
1.4 文件路径操作
  • os.path.join(path, *paths):智能拼接路径。
  • os.path.abspath(path):获取绝对路径。
  • os.path.dirname(path):获取目录名。
  • os.path.basename(path):获取文件名。
  • os.path.exists(path):检查路径是否存在。
  • os.path.isfile(path):检查路径是否为文件。
  • os.path.isdir(path):检查路径是否为目录。
  • os.path.getsize(path):获取文件大小(字节)。
full_path = os.path.join('dir1', 'file.txt')
abs_path = os.path.abspath(full_path)
dir_name = os.path.dirname(abs_path)
file_name = os.path.basename(abs_path)
print("完整路径:", full_path)
print("绝对路径:", abs_path)
print("目录名:", dir_name)
print("文件名:", file_name)
print("路径是否存在:", os.path.exists(abs_path))
print("是否为文件:", os.path.isfile(abs_path))
print("是否为目录:", os.path.isdir(dir_name))
if os.path.isfile(abs_path):print("文件大小:", os.path.getsize(abs_path), "字节")

2. 环境变量

  • os.getenv(key, default=None):获取环境变量的值,如果不存在则返回 default
  • os.environ:获取一个包含所有环境变量的字典。
  • os.putenv(key, value):设置环境变量(仅在某些平台上有效,建议使用 os.environ)。
  • os.unsetenv(key):删除环境变量(仅在某些平台上有效)。
# 获取环境变量
home_dir = os.getenv('HOME')
print("HOME 环境变量:", home_dir)# 设置环境变量
os.environ['MY_VAR'] = 'my_value'
print("MY_VAR 环境变量:", os.getenv('MY_VAR'))# 删除环境变量(仅在支持 unsetenv 的平台上有效)
# os.unsetenv('MY_VAR')

3. 执行系统命令

  • os.system(command):在子终端执行系统命令。
  • os.popen(cmd, mode='r', buffering=-1):打开一个管道连接到或从一个命令。
  • subprocess 模块:更强大和灵活的子进程管理模块,建议使用 subprocess 代替 os.systemos.popen
# 使用 os.system 执行命令
exit_code = os.system('ls -l')
print("命令执行后的退出码:", exit_code)# 使用 os.popen 执行命令并读取输出
process = os.popen('ls -l')
output = process.read()
print("命令输出:\n", output)
process.close()

4. 文件和目录权限

  • os.chmod(path, mode):改变文件或目录的权限。
  • os.chown(path, uid, gid):改变文件或目录的所有者和组(仅在 Unix 上有效)。
# 假设你有一个文件 'file.txt'
# os.chmod('file.txt', 0o755)  # 设置文件权限为 rwxr-xr-x

5. 临时文件和目录

  • tempfile.TemporaryFile():创建一个临时文件,文件关闭后会自动删除。
  • tempfile.NamedTemporaryFile():创建一个命名临时文件,文件关闭后会自动删除。
  • tempfile.mkdtemp():创建一个临时目录,可以手动删除。
  • tempfile.TemporaryDirectory():创建一个临时目录,目录关闭后会自动删除。
import tempfile# 创建一个临时文件
with tempfile.TemporaryFile() as temp_file:temp_file.write(b'Hello, World!')temp_file.seek(0)print(temp_file.read())# 创建一个命名临时文件
with tempfile.NamedTemporaryFile(delete=False) as named_temp_file:temp_file_name = named_temp_file.nameprint("命名临时文件:", temp_file_name)# 可以手动删除文件# os.remove(temp_file_name)# 创建一个临时目录
temp_dir = tempfile.mkdtemp()
print("临时目录:", temp_dir)
# 可以手动删除目录
# os.rmdir(temp_dir) 或 os.removedirs(temp_dir) 如果是递归创建的# 创建一个自动删除的临时目录
with tempfile.TemporaryDirectory() as temp_dir_ctx:print("自动删除的临时目录:", temp_dir_ctx)

这些只是 os 模块中的一些基本功能,实际上 os 模块的功能非常丰富,适用于各种操作系统相关的任务。如果需要更复杂的子进程管理,建议查阅 subprocess 模块。

相关文章:

Python教学-最常用的标准库之一——OS库

os 库是 Python 标准库中的一个模块,它提供了一种方便的方式来使用操作系统相关的功能。os 模块提供了很多函数,可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的 os 模块的功能和示例: 1. 文件和目录操作 1.1 当前…...

尚硅谷爬虫note006

一、ajax的get请求 1. ajax的get请求—豆瓣电影第一页 # _*_ coding : utf-8 _*_ # Time : 2025/2/13 15:14 # Author : 20250206-里奥 # File : demo23_ajax的get请求 # Project : PythonProject10-14import urllib.requestfrom demo17_qingqiuduixaingdedingzhi import hea…...

LeetCode刷题---字符串---859

亲密字符串 859. 亲密字符串 - 力扣(LeetCode) 题目: 给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是&…...

探索大数据处理:利用 Apache Spark 解锁数据价值

探索大数据处理:利用 Apache Spark 解锁数据价值 大家好,我是你们熟悉的大数据领域自媒体创作者Echo_Wish。今天,我们来聊聊如何利用Apache Spark进行大规模数据处理。Apache Spark作为一个快速、通用的集群计算框架,以其出色的性…...

伯克利 CS61A 课堂笔记 08 —— Strings and Dictionaries

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Strings 字符串 Ⅰ Strings are An Abstraction. Ⅱ Strings Literals have Three Forms Ⅲ String are Sequences 02 Dictionaries 字典 …...

V93K测试机

爱德万V9300(又称V93K)是Advantest公司推出的高端可扩展SoC测试平台,在半导体测试领域具有标杆地位。以下为该设备的详细介绍: ### 一、核心性能与技术优势 1. **高速高精度测试能力** V9300支持高达112 Gbps PAM4信号&…...

在 CentOS 上更改 SSH 默认端口以提升服务器安全性

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …...

基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)

基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)是语义通信(Semantic Communication, SemCom)的核心研究方向,它们旨在优化通信效率&#…...

Golang GORM系列:GORM事务及错误处理

在数据库管理领域,确保数据完整性至关重要。GORM是健壮的Go对象关系映射库,它为开发人员提供了维护数据一致性和优雅地处理错误的基本工具。本文是掌握GORM事务和错误处理的全面指南。我们将深入研究如何使用事务来保证原子性,并探索有效处理…...

51单片机-C语言扩展及最小系统

1、C-51的数据类型扩充定义 sfr:特殊功能寄存器声明 sfr:变量名地址值; 特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。 sbit:特殊功能位声明sbit 变量名地址…...

日常问题-pnpm install执行没有node_modules生成

日常问题-pnpm install执行没有node_modules生成 1.问题2.解决方法 1.问题 执行pnpm i后,提示Scope: all 3 workspace projects Done in 503ms,而且没有node_modules生成。很奇怪 2.解决方法 确保根目录有 pnpm-workspace.yaml 文件: 把这…...

FreeRTOS低功耗总结

前言 Cortex-M核的MCU一般支持以下三种低功耗方式: ● 睡眠(Sleep)模式 ● 停止(Stop)模式 ● 待机(Standby)模式 睡眠模式 进入睡眠模式有两种指令:WFI(等待中断)和WFE(等待事件), WFI进入睡眠模式后,任意中断都可唤醒。 WFE进…...

UniApp 实现炫酷导航栏:选中图标上移并隐藏文字

在移动应用开发中,导航栏是用户与应用交互的重要组成部分,一个美观且交互性强的导航栏能大大提升用户体验。本文将详细介绍如何使用 UniApp 实现一个独特的导航栏,当用户选中某个导航项时,对应的图标会上移并隐藏文字,…...

Django 操作表中的数据(增删改查)

1.新建数据 我之前已经在数据库中创建了两张表,如下 在urls.py文件中添加一行代码,然后再在views.py文件中编写函数 (将 URL 路径 orm/ 映射到 Django 视图函数 views.orm,当用户访问 orm/ 时,Django 会调用 orm 视图…...

优选驾考小程序

第2章 系统分析 2.1系统使用相关技术分析 2.1.1Java语言介绍 Java语言是一种分布式的简单的 开发语言,有很好的特征,在安全方面、性能方面等。非常适合在Internet环境中使用,也是目前企业级运用中最常用的一个编程语言,具有很大…...

vue开发06:前端通过webpack配置代理处理跨域问题

1.定义 在浏览器尝试请求不同源(域名、协议、端口号不同)的资源时,浏览器的同源策略会阻止这种跨域请求。(比如前端端口15500,后端端口5050,前端界面不可以直接调用5050端口) 2.解决方案 使用前…...

C++基础 | 线程`std::thread`

什么是std::thread? std::thread是C11中引入的一个类,用于表示和管理线程。通过std::thread,我们可以创建一个新的线程来执行指定的任务。线程是操作系统调度的基本单位,多个线程可以并发执行,从而提高程序的效率。 创…...

体验 DeepSeek-R1:解密 1.5B、7B、8B 版本的强大性能与应用

文章目录 🍋引言🍋DeepSeek 模型简介🍋版本更新:1.5B、7B、8B 的区别与特点🍋模型评估🍋体验 DeepSeek 的过程🍋总结 🍋引言 随着大规模语言模型的持续发展,许多模型在性…...

2024年认证杯SPSSPRO杯数学建模A题(第二阶段)保暖纤维的保暖能力全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 A题 保暖纤维的保暖能力 原题再现: 冬装最重要的作用是保暖,也就是阻挡温暖的人体与寒冷环境之间的热量传递。人们在不同款式的棉衣中会填充保暖材料,从古已有之的棉花、羽绒到近年来各种各样的人造纤维。不…...

P1878 舞蹈课(详解)c++

题目链接:P1878 舞蹈课 - 洛谷 | 计算机科学教育新生态 1.题目解析 1:我们可以发现任意两个相邻的都是异性,所以他们的舞蹈技术差值我们都要考虑,4和2的差值是2,2和4的差值是2,4和3的差值是1,根…...

或非门组成的SR锁存器真值表相关问题

PS:主要是给大家抛砖引玉,不喜勿喷。 问题描述:或非门组成的SR锁存器,为什么当SD和RD等于0时候的真值表一个是Q0,Q0.一个结果是Q1,Q1?...

机器学习算法 - 随机森林之决策树初探(1)

随机森林是基于集体智慧的一个机器学习算法,也是目前最好的机器学习算法之一。 随机森林实际是一堆决策树的组合(正如其名,树多了就是森林了)。在用于分类一个新变量时,相关的检测数据提交给构建好的每个分类树。每个…...

webpack构建流程

文章目录 [TOC](文章目录) 运行流程初始化流程编译构建流程compile编译make 编译模块build module 完成模块编译 输出流程seal输出资源emit输出完成 小结 运行流程 是一个串行的过程,它的工作流程就是将各个插件串联起来 在运行过程中会广播事件,插件只…...

服务器之连接简介(Detailed Explanation of Server Connection)

一台服务器最大能支持多少连接?一台客户端机器最多能发起多少条连接?? 我们知道TCP连接,从根本上看其实就是client和server端在内存中维护的一组【socket内核对象】(这里也对应着TCP四元组:源IP、源端口、…...

第1章大型互联网公司的基础架构——1.5 服务发现

讲到这里,我们已经对一个客户端请求进入业务HTTP服务的过程有了较为详细的了解。业务HTTP服务在处理请求的过程中免不了与其他下游服务通信——可能会调用其他业务服务,可能需要访问数据库,可能会向消息中间件投递消息等,所以业务…...

uniapp PDF 预览和下载

创建 index.vue <template><view><view class"box"><view class"item" ><view class"title"><span></span><text>文件</text></view><view class"list" v-for"(…...

ubuntu服务器部署

关闭欢迎消息 服务器安装好 ubuntu 系统后&#xff0c;进行终端登录&#xff0c;会显示出很多的欢迎消息 通过在用户的根目录下执行 touch .hushlogin 命令&#xff0c;再次登录终端就不会出现欢迎消息 修改hostname显示 修改 /etc/hostname 文件内容为主机名&#xff0c;保…...

Deepseek 本地部署

准备环境 设备&#xff1a;家用笔记本电脑&#xff0c;8核/16G/1Tb SSD/无独显 系统&#xff1a;windows10 软件环境&#xff08;非源码部署不需要&#xff09;&#xff1a;conda 4.8.5、python3.7、git2.13 步骤 下载安装Ollama 下载地址&#xff1a;OllamaGet up and r…...

[Linux][问题处理]修改密码报You must wait longer to change your password

一、问题描述 在Linux控制台中修改密码&#xff0c;键入旧密码&#xff0c;设置并确认新密码后&#xff0c;却提示You must wait longer to change your password&#xff08;您必须等待更长时间才能更改密码&#xff09; 二、原因 当前修改时间 < Minimum number of da…...

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-22- 操作鼠标拖拽 - 下篇(详细教程)

1.简介 上一篇中&#xff0c;宏哥说的宏哥在最后提到网站的反爬虫机制&#xff0c;那么宏哥在自己本地做一个网页&#xff0c;没有那个反爬虫的机制&#xff0c;谷歌浏览器是不是就可以验证成功了&#xff0c;宏哥就想验证一下自己想法&#xff0c;其次有人私信宏哥说是有那种…...

SpringBoot3使用Swagger3

版本 springboot3.4.2 JAVA 17 一、引入Swagger3依赖 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.0.4</version> </dependency> 二、快速启…...

HCIA综合项目之多技术的综合应用实验

十五 HCIA综合实验 15.1 IP规划 #内网分配网段192.168.1.0 24#内网包括骨干链路和两个用户网段&#xff0c;素以需要划分三个&#xff0c;借两位就够用了192.168.1.0 26--骨干192.168.1.64 26---R1下网络192.168.1.128 26---R2下网络192.168.1.192 26--备用​192.168.1.64 26--…...

燕千云ITSM已支持DeepSeek对接!AI能力持续升级

春节期间&#xff0c;DeepSeek火爆全网&#xff0c;引发热议&#xff0c;作为国产AI大模型的黑马&#xff0c;DeepSeek凭借独特的训练方法、先进的模型架构和强大的联网推理能力&#xff0c;正不断拓展AI技术的应用边界。其“快思考”能力&#xff0c;可在极短时间内完成复杂决…...

Windows 自动主题:Windows AutoTheme

Windows 自动主题&#xff1a;Windows AutoTheme 链接&#xff1a;https://pan.xunlei.com/s/VOJ2ZG5t8QjL7_fGVIBgyxJQA1?pwdgbie# 自动切换&#xff1a;根据日出、日落时间自动切换 Windows 主题模式。高效轻量&#xff1a;使用 Rust 提供高效的系统调用&#xff0c;保证运…...

自定义Spring Cloud Gateway过滤器:记录慢请求

在构建微服务架构时&#xff0c;API网关是一个关键组件&#xff0c;它负责路由、负载均衡、安全验证等多种功能。Spring Cloud Gateway提供了强大的扩展能力&#xff0c;允许开发者通过自定义过滤器来增强其功能。本文将详细介绍如何实现一个自定义过滤器&#xff0c;用于记录响…...

python 浅拷贝和深拷贝

浅拷贝&#xff08;Shallow Copy&#xff09;语法示例代码 1示例代码 2 深拷贝&#xff08;Deep Copy&#xff09;语法示例代码 浅拷贝与深拷贝的区别示例&#xff1a;浅拷贝与深拷贝的对比 浅拷贝&#xff1a;只复制外层容器&#xff0c;内层嵌套对象仍然是共享的&#xff0c;…...

uni-app 学习(一)

一、环境搭建和运行 &#xff08;一&#xff09;创建项目 直接进行创建 &#xff08;二&#xff09;项目结构理解 pages 是页面 静态资源 打包文件&#xff0c;看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…...

unity学习37:新版的动画器:动画状态机 Animator

目录 1 给游戏物体添加&#xff0c;新版的动画器 Animator 2 关于 Animator 3 创建 动画器的控制器 Animator Controller 4 打开动画编辑器 Animator 5 动画编辑器 还是Animation 5.1 创建新的动画 5.2 创建第2个动画 5.3 测试2个动画均可用 6 再次打开动画编辑器 A…...

FFmpeg+SDL实现简易视频播放器

参考链接 https://blog.csdn.net/qq_26611129/article/details/98732561 https://www.cnblogs.com/Azion/p/17756274.html https://avmedia.0voice.com/?id49050 https://blog.csdn.net/qq_44825209/article/details/133760652 https://www.cnblogs.com/Azion/p/17525955.htm…...

Vue3实现优雅的前端版本更新提示

背景 在前端项目开发中,当我们发布了新版本后,需要及时通知用户刷新页面以获取最新代码。本文将介绍一种优雅的实现方案。 实现原理 在项目根目录维护一个version.json文件,记录当前版本号前端定期请求version.json检查版本对比本地存储的版本号,如有更新则提示用户 核心代…...

vim常用快捷键

正常模式 在打开文件进入 Vim 后&#xff0c;默认处于正常模式&#xff0c;该模式下的快捷键主要用于光标移动、文本操作等。 光标移动 基本移动&#xff1a;h&#xff08;左移&#xff09;、j&#xff08;下移&#xff09;、k&#xff08;上移&#xff09;、l&#xff08;右移…...

P1226 【模板】快速幂

P1226 【模板】快速幂 题目描述 给你三个整数 a , b , p a,b,p a,b,p&#xff0c;求 a b m o d p a^b \bmod p abmodp。 输入格式 输入只有一行三个整数&#xff0c;分别代表 a , b , p a,b,p a,b,p。 输出格式 输出一行一个字符串 a^b mod ps&#xff0c;其中 a , b…...

【gRPC-gateway】是否有拦截器的情况添加健康检查的细节,与多路复用runtime.NewServeMux和gRPC区别讲解,与跨域功能,go案例

健康检查详解 什么是健康检查&#xff1f; 健康检查&#xff08;Health Checking&#xff09;是一种机制&#xff0c;用于监控服务的状态&#xff0c;确保服务在运行时是健康的、可用的。通过健康检查&#xff0c;系统可以自动检测服务是否正常工作&#xff0c;并在出现问题时…...

vue开发时,用localStorage常用方法及存储数组方法。

localStorage 可以让你在浏览器中存储键值对&#xff0c;并且在页面关闭后数据依然保留。localStorage 中存储的数据会一直保存在客户端&#xff0c;直到被手动删除或者清除浏览器缓存。 localStorage 中存储的数据在同一浏览器的不同窗口之间是共享的&#xff0c;而 sessionSt…...

HashMap详解+简单手写实现(哈希表)

1. 什么是 HashMap&#xff1f; HashMap是Java集合框架中的一种数据结构&#xff0c;它实现了Map接口&#xff0c;用于存储键值对&#xff08;Key-Value Pair&#xff09;。HashMap允许null键和null值&#xff0c;并且不保证元素的顺序。 --- 2. HashMap 的工作原理 2.1 内…...

解决Did not find dashscope_api_key问题——jupyter设置环境变量

jupyter中使用通义千文langchain 报错 Value error, Did not find dashscope_api_key, please add an environment variable DASHSCOPE_API_KEY which contains it, or pass dashscope_api_key as a named parameter.我本来以为这样就是已经加上了&#xff1a; #导入相关包 i…...

尚硅谷爬虫note003

一、函数 1. 函数的定义 def 函数名&#xff08;&#xff09;&#xff1a; 代码 2.函数的调用 函数名&#xff08;&#xff09; 3. 定义参数&#xff08;不调用函数不执行&#xff09; def sum&#xff08;a&#xff0c;b&#xff09; #形参 c a b print&#xff08;c&…...

算法兵法全略(译文)

目录 始计篇 谋攻篇 军形篇 兵势篇 虚实篇 军争篇 九变篇 行军篇 地形篇 九地篇 火攻篇 用间篇 始计篇 算法&#xff0c;在当今时代&#xff0c;犹如国家关键的战略武器&#xff0c;也是处理各类事务的核心枢纽。算法的世界神秘且变化万千&#xff0c;不够贤能聪慧…...

NO.17十六届蓝桥杯备战|do-while循环|break和continue语句|三道练习(C++)

do-while循环 do-while语法形式 在循环语句中 do while 语句的使⽤最少&#xff0c;它的语法如下&#xff1a; //形式1 do 语句; while( 表达式 );//形式2 do { 语句1; 语句2; ... } while( 表达式 );while 和 for 这两种循环都是先判断&#xff0c;条件如果…...

【广州大学主办,发表有保障 | IEEE出版,稳定EI检索,往届见刊后快至1个月检索】第二届电气技术与自动化工程国际学术会议 (ETAE 2025)

第二届电气技术与自动化工程国际学术会议 (ETAE 2025) The 2nd International Conference on Electrical Technology and Automation Engineering 大会官网&#xff1a;http://www.icetae.com/【更多详情】 会议时间&#xff1a;2025年4月25-27日 会议地点&#xff1a…...