Python OS模块常用方法整理

os模块包含了普遍的操作系统和文件目录方法

引入类库

首先需要引入类库

import os

常用方法

OS模块方法

获取操作系统类型

nt->window:Microsoft Windows NT

posix->Linux/Mac OS: Portable Operating System Interface of UNIX(可移植操作系统接口)

示例如下:

print(os.name) # nt

获取系统环境变量
所有环境变量

示例如下:

print(os.environ)

 

指定环境变量

示例如下:

print(os.environ.get('APPDATA'))# C:\Users\18201\AppData\Roaming

获取当前目录

示例如下:

print(os.curdir)# 执行结果:.

获取当前工作目录

即当前python脚本所在目录

示例如下:

print(os.getcwd())# 执行结果: E:\lianxipy\day3

获取目录所有文件

使用os的listdir方法,返回指定目录下所有的文件(以列表的形式)。

示例如下:

print(os.listdir(r'E:\lianxipy\day3'))# 执行结果
# ['os整理.py', '元组.py', '字典.py', '字符串.py', '异常处理.py', '文件持久操作.py', '文件读写.py','装饰器.py', '迭代器.py', '集合.py']

创建目录

在当前目录下创建新目录

绝对路径

示例如下:

os.mkdir(r'E:\lianxipy\day3\new')

 

相对路径

示例如下:

os.mkdir('new2')

注意:

目录如果已存在,就会抛出异常

Traceback (most recent call last):File "E:\lianxipy\day3\os整理.py", line 38, in <module>os.mkdir(r'E:\lianxipy\day3\new')
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\\lianxipy\\day3\\new'

 

执行结果

删除目录

删除目录使用刚才创建的new和new2目录为例。

示例如下:

os.rmdir(r'E:\lianxipy\day3\new')
os.rmdir('new2') # ./new2 or new2都可以

 

获取文件属性

示例如下:

print(os.stat('os整理.py'))

执行结果:

os.stat_result(st_mode=33206, st_ino=1970324837013767, st_dev=3365708600, st_nlink=1, st_uid=0, st_gid=0, st_size=1208, st_atime=1701744932, st_mtime=1701744932, st_ctime=1701740791)

说明:

st_mode: inode 保护模式

st_ino: inode 节点号。

st_dev: inode 驻留的设备。

st_nlink: inode 的链接数。

st_uid: 所有者的用户ID。

st_gid: 所有者的组ID。

st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。

st_atime: 上次访问的时间。

st_mtime: 最后一次修改的时间。

st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

重命名
对目录重命名

需要传入两个路径+名称,分别为路径目录与新路径目录。

示例如下:

os.rename('new', 'new1')

 

对文件重命名

这里也是传入两个路径名称,需要注意的是路径要携带文件扩展名,否则就修改文件格式,会导致无法识别文件。

示例如下:

os.rename('函数1.py', '函数.py')

删除普通文件

删除文件需要使用os的remove方法,传入一个绝对路径或相对路径的文件即可删除。在当前目录下创建一个new.txt用于测试删除。

示例如下:

os.remove('new.txt')

如果存在就会被删除,如果不存在就会抛出异常:

Traceback (most recent call last):File "E:\lianxipy\day3\os整理.py", line 59, in <module>os.remove('new.txt')
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'new.txt'

运行shell命令

Shell命令就是指使用cmd.exe打开的小黑窗口执行的命令。使用shell命令需要谨慎,否则易引发安全问题。

示例如下:

# 设置脚本文件编码为utf-8
os.system("CHCP 65001")
# 查看本地配置
os.system("ipconfig")
# 查看文件目录树结构
os.system("tree")
# 打开远程桌面
os.system("mstsc")

OS path模块方法

查看当前绝对路径

示例如下:

print(os.path.abspath('./os整理.py'))# 执行结果
# E:\lianxipy\day3\os整理.py

拼接路径

注意:参数2中开始不能是斜杠,否则会覆盖掉参数1除根外的其他路径

示例如下:

path1 = "E:\lianxipy\day3"
path2 = "text\\new1\\new2"
print(os.path.join(path1, path2))# 执行结果
# E:\lianxipy\day3\text\new1\new2

拆分路径

从路径中拆出最后一个目录

示例如下:

path3 = r"E:\lianxipy\day3\text\new1\new2"
print(os.path.split(path3))# 执行结果
# ('E:\\lianxipy\\day3\\text\\new1', 'new2')

 

获取扩展名

获取文件的扩展名(带.)

示例如下:

print(os.path.splitext(r"E:\lianxipy\day3\os整理.py"))
# 若没有扩展名
print(os.path.splitext(r"E:\lianxipy\day3\os整理"))# 执行结果
# ('E:\\lianxipy\\day3\\os整理', '.py')
# ('E:\\lianxipy\\day3\\os整理', '')

判断目录

判断目录参数为绝对路径返回布尔值,存在即为True。

示例如下:

print(os.path.isdir(r"E:\lianxipy\day3\os整理.py")) # False
print(os.path.isdir(r"E:\lianxipy\day3")) # True

判断文件是否存在

示例如下:

print(os.path.isfile(r"E:\lianxipy\day3\os整理.py")) # True
print(os.path.isfile(r"E:\lianxipy\day3\os整理1.py"))# False

判断路径是否存在

可用来判断绝对路径的目录

示例如下:

print(os.path.exists(r"E:\lianxipy\day3")) # True

也可以用来判断文件

print(os.path.exists(r"E:\lianxipy\day3\os整理.py")) # True

获取文件的大小

获取文件和目录大小单位kb

示例如下:

print(os.path.getsize(r"E:\lianxipy\day3\os整理.py")) # 3457

也可以使用获取目录大小 判断是否空文件夹

print(os.path.getsize(r"E:\lianxipy\day3\new")) # 0

文件的目录获取

dirname 函数用于返回文件路径,也就是返回 path 参数中最后一个斜杠之前的所有内容。

basename函数用于去掉目录路径,单独返回文件名。

示例如下:

path = r"E:\lianxipy\day3\os整理.py"
print(os.path.dirname(path))
print(os.path.basename(path))# 执行结果
# E:\lianxipy\day3
# os整理.py

总结

本篇主要整理了一些os模块常用的操作方法。

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

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

相关文章

深入理解Java核心技术:Java工程师的实用干货笔记

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在Java工程师的职业生涯中&#xff0c;深入理解…

K8S部署nginx并且使用NFS存储数据

安装NFS 在master安装NFS systemctl start nfs-server修改配置 /etc/exports /data *(rw,no_root_squash,no_all_squash,sync)目录为 /data 允许所有地址访问 验证下 [rootmaster nginx]# showmount -e 192.168.57.61 Export list for 192.168.57.61: /data *共享可以正常…

基于 springboot + vue 健身房管理系统 毕业设计-附源码

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

使用 husky 和 lint-staged 配置代码检查工作流

提交代码前做代码检查 如果我们不做代码检查&#xff0c;有时候有代码错误&#xff0c;我们不能及时发现&#xff0c;只有打开代码块才知道&#xff0c;这样在提交仓库时也会忽略&#xff0c;很危险。 1、初始化 git仓库&#xff0c;执行 git init 即可 2、初始化 husky 工具配…

12月5日作业

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&…

面向注解编程—Spring 注解看这一篇就够了(2)

面向注解编程—Spring注解大全&#xff08;AOP篇&#xff09; AOP英文全称&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实说白 了&#xff0c;面向切面编程就是面向特定方法编程。 AOP的作用&#xff1a;在程序…

排序的概念及其运用

1.排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序…

⭐ Unity里 用Shader 去做实时动态绿幕抠图

1.先看一下效果 a.这是背景图片 b.抠完图之后(这里用的是扣去白色的) 2.shader代码如下 Shader "UniversalChromaKey" {Properties{_MainTex("Base (RGB)", 2D) "white" {}_Sens("Sensibilidad", Range(0,.9)) .3_Cutoff("R…

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

文章目录 背景SLF4J - 简单日志门面:Log4j - 强大而古老的日志框架:Log4j2 - Log4j的升级版:Logback - Log4j的继任者:比较Springboot集成slf4j、log4j2参考 背景 在Java开发中&#xff0c;日志记录是一个不可或缺的组成部分。为了满足不同的需求&#xff0c;Java社区涌现出多…

selenium python 实现基本自动化测试的示例代码

安装selenium 打开命令控制符输入&#xff1a;pip install -U selenium 火狐浏览器安装firebug&#xff1a;www.firebug.com&#xff0c;调试所有网站语言&#xff0c;调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件&#xff0c;实现简单的浏览器操 作的录制与回…

nodejs+vue+elementui校园演出赞助艺术资源管理系统

系统主要分为系统管理员和学生、校外人员三个部分&#xff0c;系统管理员主要功能包括&#xff1a;首页、个人中心、学生管理、校外人员管理、社团信息管理、校内演出管理、校外商演管理、系统管理&#xff1b;基本上实现了整个基于vue的校园艺术资源管理系统的设计与实现信息管…

$sformat在仿真中打印文本名的使用

在仿真中&#xff0c;定义队列&#xff0c;使用任务进行函数传递&#xff0c;并传递文件名&#xff0c;传递队列&#xff0c;进行打印 $sformat(filename, “./data_log/%0d_%0d_%0d_0.txt”, f_num, lane_num,dt); 使用此函数可以自定义字符串&#xff0c;在仿真的时候进行文件…

EA电源维修EA-PS 9750-60直流电源维修Elektro-Autοmαtik

德国EA Elektro-Autοmαtik全系列电源维修EA-PS 80003U系列 这些μ-处理器控制和可编程重型的实验室电源提供了一个灵活的“自动量程”无论是高电压或高电流在额定功率输出&#xff0c;允许使用。配件包括数字编码器可用于设置电压&#xff0c;电流和功率&#xff0c;完整的4…

nodejs+vue+ElementUi小区社区公寓宿舍智能访客预约系统

该系统将采用B/S结构模式&#xff0c;前端部分主要使用html、css、JavaScript等技术&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端部分将使用Nodejs来搭建服务器&#xff0c;并使用MySQL建立后台数据系统&#xff0c;通过axios完成前后端的交互&#xff0c;…

绘制纹理C++

用数学和C绘制一些纹理 sin(x * x y * y) int main() {int width 400; // 宽度int height 400; // 高度Mat texture Mat::zeros(height, width, CV_8UC1);for (int y 0; y < height; y) {for (int x 0; x < width; x) {int value static_cast<int>(255 * …

基于go文件同步工具的升级迭代

介绍 同样&#xff0c;该工具适用于多个项目不同版本的维护&#xff0c;文件更新和新增的同步(自动创建目录)&#xff0c;支持自动提交svn。 升级迭代 之前的文件同步工具&#xff0c;依赖chrome和http包&#xff0c;有时候js加载页面不太稳定&#xff0c;所以有空闲就升级迭…

什么是TDR(威胁检测与响应)

网络安全是被动和主动方法的混合体。过去&#xff0c;企业往往局限于被动的方法&#xff0c;随着合规性和安全策略越来越受到重视&#xff0c;主动方法也越来越受到关注。与其他行业相比&#xff0c;网络安全是高度动态的&#xff0c;网络安全团队采用任何可以帮助他们优化的新…

MinIo 的操作与使用

文章目录 一、Client 连通 官方 API 文档&#xff1a;Documentation 官方中文文档&#xff1a;MinIO中文文档 一、Client 连通 Java 代码&#xff1a; MinioClient minioClient MinioClient.builder().endpoint("http://192.168.110.110:9000").credentials("x…

Redis服务器安装配置

Redis是一种开源的NoSQL内存数据库&#xff0c;用于高性能的数据存储和访问。Redis支持多种数据类型&#xff0c;包括字符串、哈希、列表、集合和有序集合&#xff0c;并且支持分布式存储和操作。Redis的特点包括快速、高可用和易扩展等&#xff0c;适用于各种应用场景。 一、…

leetcode:LCR 122. 路径加密(python3解法)

难度&#xff1a;简单 假定一段路径记作字符串 path&#xff0c;其中以 "." 作为分隔符。现需将路径加密&#xff0c;加密方法为将 path 中的分隔符替换为空格 " "&#xff0c;请返回加密后的字符串。 示例 1&#xff1a; 输入&#xff1a;path "a.a…