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

python模块 - os系统交互模块

目录

前言:

​编辑

一、os.path模块

1、获取文件路径信息

os.path.abspath(): 获取绝对路径

os.path.dirname(): 获取目录名

os.path.basename(): 获取文件名

os.path.split(): 分割目录和文件名

os.path.join(): 拼接路径

2、判断路径信息

os.path.exists(): 判断路径是否存在

os.path.isfile(): 判断是否为文件

os.path.isdir(): 判断是否为目录

os.path.islink(): 判断是否为符号链接

3、获取文件属性

os.path.getsize(): 获取文件大小

os.path.getmtime(): 获取最后修改时间

4、字符串处理

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

二、os(不带path)模块

1、目录相关

os.getcwd():返回当前工作目录

os.listdir(path):返回path目录下所有文件列表

os.mkdir(path):创建path目录(只能创建一级目录)

os.makedirs(path):创建多级目录(递归创建)

os.rmdir(path):删除path目录(只能删除一级目录)

os.removedirs(path):删除多级目录(递归删除)

os.remove(path):删除文件(必须是文件)

2、更改路径

os.chdir(path):将当前工作目录更改为指定路径path

3、查看文件属性

os.stat(file):获取文件属性

os.chmod(file):修改文件权限与时间戳


前言:

        本文记录博主开发python上位机时用到 os模块 中的函数,主要为了以后再次使用时能快速查阅。

说明:博主会根据对os模块 掌握情况持续更新

一、os.path模块


 os.path模块提供了一系列用于处理文件路径和文件系统的函数

import os.path    #导入os.path模块

1、获取文件路径信息


  • os.path.abspath(): 获取绝对路径

absolute_path = os.path.abspath(__file__)    # 获取当前文件的绝对路径
print("当前文件的绝对路径:", absolute_path)
  • os.path.dirname(): 获取目录名

directory_path = os.path.dirname(__file__)    # 获取当前文件所在目录的路径​
print("当前文件所在目录的路径:", directory_path)
  • os.path.basename(): 获取文件名

file_name = os.path.basename(__file__)    # 获取当前文件的文件名
​print("当前文件的文件名:", file_name)
  • os.path.split(): 分割目录和文件名

# 分割文件路径
path = "/path/to/somefile.txt"
directory, file_name = os.path.split(path)
​
print("目录:", directory)
print("文件名:", file_name)
  • os.path.join(): 拼接路径

# 拼接路径
directory = "/path/to"
file_name = "somefile.txt"
path = os.path.join(directory, file_name)
​
print("拼接后的路径:", path)    # /path/to/somefile.txt

2、判断路径信息


  • os.path.exists(): 判断路径是否存在

# 判断路径是否存在
path = "/path/to/somefile.txt"
if os.path.exists(path):print("路径存在")
  • os.path.isfile(): 判断是否为文件

# 判断是否为文件
file_path = "/path/to/somefile.txt"
if os.path.isfile(file_path):print("路径是一个文件")
  • os.path.isdir(): 判断是否为目录

# 判断是否为目录
directory_path = "/path/to"
if os.path.isdir(directory_path):print("路径是一个目录")
  • os.path.islink(): 判断是否为符号链接

# 判断是否为符号链接
link_path = "/path/to/symlink"
if os.path.islink(link_path):print("路径是一个符号链接")

3、获取文件属性


  • os.path.getsize(): 获取文件大小

# 获取文件大小
file_path = "/path/to/somefile.txt"
size = os.path.getsize(file_path)print("文件大小:", size, "字节")
  • os.path.getmtime(): 获取最后修改时间

# 获取最后修改时间
file_path = "/path/to/somefile.txt"
mtime = os.path.getmtime(file_path)# 将时间戳转换为日期时间格式
last_modified_time = datetime.datetime.fromtimestamp(mtime)print("最后修改时间:", last_modified_time)

4、字符串处理


  • os.path.splitext(): 分割文件名和扩展名

# 分割文件名和扩展名
file_path = "/path/to/somefile.txt"
file_name, extension = os.path.splitext(file_path)print("文件名:", file_name)
print("扩展名:", extension)

二、os(不带path)模块


import os    #导入os模块

1、目录相关


  • os.getcwd():返回当前工作目录

  • os.listdir(path):返回path目录下所有文件列表

  • os.mkdir(path):创建path目录(只能创建一级目录)

  • os.makedirs(path):创建多级目录(递归创建)

  • os.rmdir(path):删除path目录(只能删除一级目录)

        删除目录 path,path必须是个空目录,否则抛出OSError异常。

os.rmdir('./test')  # test是一个空的文件夹

  • os.removedirs(path):删除多级目录(递归删除)

递归地删除目录。要求每一级目录都为空,才能递归删除全部目录。子目录被成功删除,才删除父目录;如果子目录没有成功删除,将抛出OSError异常。

#test2是test的子文件夹,如果test2不为空,则抛出异常;如果test2为空,test不为空,则test2删除成功,test不删除,但不报异常
os.removedirs('./test/test2)
  • os.remove(path):删除文件(必须是文件)

2、更改路径


  • os.chdir(path):将当前工作目录更改为指定路径path

3、查看文件属性


  • os.stat(file):获取文件属性

  • os.chmod(file):修改文件权限与时间戳


参考文章:

https://zhuanlan.zhihu.com/p/649758359

https://www.kancloud.cn/noahs/python/920961

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 订单到期关闭如何实现?
  • 中移动集团SRE人员能力提升培训圆满结课
  • 数学建模算法总结
  • 约瑟夫环问题【算法 06】
  • 看看人家写的,Controller太优雅了~【送源码】
  • 2-SAT,用连通分量编号确定答案
  • 大模型在企业数智化转型中可以做哪些事情?
  • C++类的六个默认函数
  • 软件测试 - 基础(软件测试的生命周期、测试报告、bug的级别、与开发人员产生争执的调解方式)
  • 第二十七节、人物可互动标识
  • 从就业出发,深度剖析大数据行业的现状与前景
  • 科研绘图系列:Python语言时间趋势图
  • 如何在Linux系统中放大MKV视频文件的音量
  • ios调用高德地图定位报错
  • (八)Flink Join 连接
  • CentOS 7 修改主机名
  • Druid 在有赞的实践
  • HTTP那些事
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • javascript 哈希表
  • javascript从右向左截取指定位数字符的3种方法
  • JavaWeb(学习笔记二)
  • Java小白进阶笔记(3)-初级面向对象
  • Koa2 之文件上传下载
  • PAT A1017 优先队列
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 初识MongoDB分片
  • 观察者模式实现非直接耦合
  • 看域名解析域名安全对SEO的影响
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 用jQuery怎么做到前后端分离
  • const的用法,特别是用在函数前面与后面的区别
  • linux 淘宝开源监控工具tsar
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​数据结构之初始二叉树(3)
  • # .NET Framework中使用命名管道进行进程间通信
  • #define用法
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (JS基础)String 类型
  • (七)c52学习之旅-中断
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)http-server应用
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .aanva
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net - 类的介绍
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET开发人员必知的八个网站
  • /etc/sudoers (root权限管理)
  • @KafkaListener注解详解(一)| 常用参数详解
  • @RunWith注解作用
  • @基于大模型的旅游路线推荐方案
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [20180129]bash显示path环境变量.txt