python模块 - os系统交互模块

news2024/9/20 15:23:08

目录

前言:

​编辑

一、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

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

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

相关文章

记Windows文件右键扩展二级子菜单

参考 注册表添加桌面右键二级菜单_注册表右键二级菜单怎么设置-CSDN博客 Windows 右键菜单自定义配置_windows右键菜单内容修改-CSDN博客 注意事项 如需配置二级菜单,新增的项中,默认的键值一定需要为空(要显示未设置),否则无法展示出二级…

编写一个函数,接受一个对象数组参数,返回所有对象中特定属性的值的总和

思路如下: 初始化总和为0 遍历对象数组 检查当前对象是否包含指定属性 如果是,则将属性值加到总和中 注意:这里假设属性值是可以进行加法运算的(如数字、字符串表示的数字等) 对于非数值类型,你可…

因为嫌吵,在自己家也用上了远程控制电脑

加班嘛,赶稿嘛,参加工作的人都懂那种无形的压力和烦躁。 因为家里空间有限,我平常都是直接在客厅用台式电脑加急改写方案,但今天晚上家里来了几位叔,他们边吃饭边聊着秦始皇的话题,都70多分钟了&#xff0c…

8万中医药方剂数据库检索方剂大全ACCESS数据库

方剂中方指医方,剂,古作齐,指调剂,方剂就是治病的药方。古代很早已使用单味药物治疗疾#病。经过长期的医#疗实践,又学会将几种药#物配合起来,经过煎煮制成汤液,即是最早的方剂。方剂一般由君#药…

Greyhound:基于lattice的快速多项式承诺方案

1. 引言 King’s College London的Ngoc Khanh Nguyen,和,IBM Research - Zurich的Gregor Seiler,2024年论文《Greyhound: Fast Polynomial Commitments from Lattices》,已被CRYPTO 2024收录。 开源代码实现见: htt…

MySQL中的回表查询、索引覆盖、索引下推

本文重点介绍索引中的常见概念:回表查询、索引覆盖、索引下推 一、回表查询 我们首先理解:在InnoDB存储引擎中,根据索引的存储形式,又可以分为以下两种: 分类含义特点聚集索引 (Clustered Index)将数据存储与索引放到…

打卡学习Python爬虫第五天|使用Xpath爬取豆瓣电影评分

思路:使用Xpath爬取豆瓣即将上映的电影评分,首先获取要爬取页面的url,查看页面源代码是否有我们想要的数据,如果有,直接获取HTML文件后解析HTML内容就能提取出我们想要的数据。如果没有则需要用到浏览器抓包工具&#…

基于x86 平台opencv的图像采集和seetaface6的人脸特征点功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸特征点功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸特征点模块从而…

gif图片怎么压缩大小?深度测评7款动图压缩工具(内含教程)

gif图片在社交媒体和网络上非常流行,深受大家喜爱,因为它可以呈现生动的动画效果。gif动图之所以受到欢迎,主要因为其出色的压缩算法,能有效存储多个帧,从而实现流畅的动画。 然而,大多数社交媒体平台对gi…

《机器学习》决策树 C4.5算法、cart算法

一、什么是C4.5算法 1、概念 C4.5算法是一种决策树生成算法,它使用信息增益比(gain ratio)来选择最优分裂属性,它是ID3算法的改进版本。 C4.5算法的核心思想是选择信息增益比最大的特征作为节点进行划分,以获得最好的…

12.3.案例分析专题-面向对象设计

文章目录 面向对象分析与设计关系类图用例图包含 练习题2021年上真题2021年下真题 考点:用例图和类图 面向对象分析与设计 关系 依赖:一个事物的语义依赖于另一个事物的语义的变化而变化 关联:是一种结构关系,描述了一组链&#…

嵌入式C语言中函数宏基本操作方法

大家好,今天给大家分享一下,如何使用C语言中的函数宏,配置方法。 1 函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。 函数宏本质上为宏,可以直接进行定义,例如: #define IN…

【后续更新】python搜集上海二手房数据

源码如下: import asyncio import aiohttp from lxml import etree import logging import datetime import openpyxlwb openpyxl.Workbook() sheet wb.active sheet.append([房源, 房子信息, 所在区域, 单价, 关注人数和发布时间, 标签]) logging.basicConfig(l…

华为账号“一键登录”能力让美团用户尽享安全便捷的登录体验

背景 随着全场景智能生态的日益完善,用户面临着众多应用与服务的登录需求, 而繁琐的注册登录流程通常是用户转化的隐形障碍,用户可能因为步骤繁琐、记忆密码困难而中途放弃,导致应用错失潜在用户。其次,高门槛的登录方…

Springcloud从零开始--Eureka(一)

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有…

Java数组06:冒泡排序

本节内容视频链接:Java数组08:冒泡排序_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p58&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 冒泡排序是一种简单的排序算法,‌它重复地遍历要排序的数列,‌…

day37动态规划+三.Github链接本地仓库

一.动态规划 474.一和零 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 思路:这道题更像是另一种的0-…

Linux编辑器gcc/g++使用及Vim的配置

🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.简单的vim配置1.1 配置文件的位置1.2 常用配…

20 Tkinter Spinbox 组件

Tkinter Spinbox 组件使用指南 Tkinter 的 Spinbox 组件是一个带有上下箭头的输入框,允许用户通过点击箭头来增加或减少数值,或者从下拉列表中选择一个值。它通常用于需要限制用户输入范围的场景。以下是对 Spinbox 组件的详细说明和一个使用案例。 Sp…

linux文件——用户缓冲区——概念深度探索、IO模拟实现

前言:本篇文章主要讲解文件缓冲区。 讲解的方式是通过抛出问题, 然后通过分析问题, 将缓冲区的概念与原理一步一步地讲解。同时, 本节内容在最后一部分还会带友友们模拟实现一下c语言的printf, fprintf接口&#xff0c…