惬意上手Python —— os模块

首先,这部分很简单,不需要有太多的操作,只需要用的时候你知道该用这个模块下的哪个函数。例如,你想知道当前路径,就该知道用 curdir 这个函数。 

在Python中,os模块是一个与操作系统交互的标准库模块,提供了许多与文件系统和进程管理有关的函数和类。下面介绍一些常见的os模块的功能:

提示:如果直接复制下面的代码使用的话,可能会有错误,因为路径可能不对,或者文件不存在,注意区分。

1.os模块的各种功能

1.文件和目录操作:os模块提供了许多与文件和目录相关的操作,例如创建、删除、重命名、移动文件和目录等。比如:

import os

# 创建目录
os.mkdir('mydir')

# 删除文件
os.remove('myfile.txt')

# 重命名文件
os.rename('oldname.txt', 'newname.txt')

# 移动文件或目录
os.replace('oldpath', 'newpath')

 

2.获取环境变量:os模块提供了获取、设置和删除系统环境变量的方法。比如:

import os

# 获取环境变量
path = os.environ.get('PATH')

# 设置环境变量
os.environ['MY_VAR'] = 'value'

# 删除环境变量
del os.environ['MY_VAR']

 

3.进程管理:os模块提供了许多与进程相关的方法,例如获取当前进程ID、杀死进程等。比如:

import os

# 获取当前进程ID
pid = os.getpid()

# 杀死进程
os.kill(pid, signal.SIGTERM)

 

4. 路径处理:os模块提供了许多与路径相关的方法,例如拼接、分割、获取文件名和目录名等。比如:

import os

# 拼接路径
path = os.path.join('/path/to', 'myfile.txt')

# 分割路径
dir, file = os.path.split('/path/to/myfile.txt')

# 获取文件名和目录名
filename = os.path.basename('/path/to/myfile.txt')
dirname = os.path.dirname('/path/to/myfile.txt')

从上面的例子中,你可以发现,想要使用 os 模块,首先是进行导入。 

 

2.os模块中的常用方法 

下面介绍一些常用的函数,会跟前面有点重复。 

 2.1 目录相关

import os

# 当前路径
print(os.curdir)    # 输出 .
# 父级路径
print(os.pardir)    # 输出 ..
# 更改路径
os.chdir("f:")      # 更改当前路径到 f 盘
# 罗列路径下方所有内容 默认当前路径
print(os.listdir("c://"))

2.2 文件夹相关

import os

# 创建文件夹
os.mkdir("temp")
# 创建多级文件夹
os.makedirs("temp/temp1/temp2")
# 删除文件夹
os.rmdir("temp")
os.removedirs("temp")

2.3  walk(不常用,但是想说一下

os.walk()os模块中一个非常有用的函数,它用于遍历一个目录及其子目录下的所有文件和文件夹。os.walk()返回一个生成器对象,可以在循环中使用来逐个获取目录树中的每个文件和文件夹。

代码演示:

import os

def traverse_directory(directory):
    for dirpath, dirnames, filenames in os.walk(directory):
        print('当前目录:', dirpath)
        print('子目录:', dirnames)
        print('文件:', filenames)
        print()

# 遍历目录树
traverse_directory('/path/to/directory')

 在上述示例中,我们定义了一个名为traverse_directory的函数,接受一个目录路径作为参数。然后,我们使用os.walk()函数遍历该目录及其子目录,并在循环中打印当前目录、子目录和文件信息。

参数说明:

  • top:指定要遍历的顶层目录路径。
  • topdown:可选参数,默认为True,表示遍历顺序为先目录再文件,如果设置为False,则表示遍历顺序为先文件再目录。
  • onerror:可选参数,用于处理遍历过程中的错误。
  • followlinks:可选参数,默认为False,表示是否遍历符号链接所指向的目录。

os.walk()函数返回一个三元组(dirpath, dirnames, filenames),其中:

  • dirpath:字符串,表示当前正在遍历的目录路径。
  • dirnames:列表,包含当前目录中的子目录名称。
  • filenames:列表,包含当前目录中的文件名称。

3.os中的path

 os.path模块是Python中处理文件路径的标准库模块,提供了一系列用于操作、处理文件路径的函数和方法。os.path模块的主要作用是提供跨平台的文件路径操作,无论在Windows、Linux还是Mac等不同操作系统上,都可以使用相同的代码来处理文件路径。

 下面介绍一些常用的os.path模块的功能:

1.os.path.join():将多个路径组合成一个完整的路径。它会根据当前操作系统的规则自动选择路径分隔符。例如: 

import os

path = os.path.join('/path/to', 'file.txt')
print(path)  # 输出:/path/to/file.txt

2.os.path.split():将路径分割成目录部分和文件部分,返回一个元组。例如:

import os

path = '/path/to/file.txt'
dir, file = os.path.split(path)
print(dir)   # 输出:/path/to
print(file)  # 输出:file.txt

3.os.path.dirname():获取路径的目录部分。例如:

import os

path = '/path/to/file.txt'
dir = os.path.dirname(path)
print(dir)  # 输出:/path/to

4.os.path.basename():获取路径的文件名部分。例如:

import os

path = '/path/to/file.txt'
file = os.path.basename(path)
print(file)  # 输出:file.txt

5.os.path.exists():判断路径是否存在。例如:

import os

path = '/path/to/file.txt'
if os.path.exists(path):
    print('文件存在')
else:
    print('文件不存在')

6.os.path.isfile()os.path.isdir():分别用于判断路径是否为文件和目录。例如:

import os

path = '/path/to/file.txt'
if os.path.isfile(path):
    print('是文件')
else:
    print('不是文件')

if os.path.isdir(path):
    print('是目录')
else:
    print('不是目录')

除了上述功能外,os.path模块还提供了很多其他方法,例如获取文件的大小、获取文件的扩展名、规范化路径等。你可以查看Python官方文档以了解更多信息。

此篇结束,光看是不行的,还是要动手,持续更新中🌹🌹🌹

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题-(BFC,前端尺寸单位,网站页面常见的优化手段)

前端面试题-BFC,前端尺寸单位,网站页面常见的优化手段 BFC前端尺寸单位网站页面常见的优化手段 BFC BFC(block formartting context)块格式化上下文。是通过独立渲染的区域,它拥有自己的渲染规则,可以决定…

【Linux】-对于信号章节补充的知识点,以及多线程知识的汇总

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

pytest+allure 生成中文报告

背景 已安装pytestallure,生成的报告是英文 allure生成中文报告 参考:allure report 报告中文化及其它优化 方法1:直接在报告中切换中文 方法2:依赖系统中文语言 创建一个setting.js 文件在index.html 同级目录 // 尝试从 l…

Python - 【Socket】消息粘包处理demo(一)

一. 前言 在网络编程中,粘包是指TCP协议在传输过程中,多条数据被合并成一条数据发送或者一条数据被拆分成多个数据发送的现象。 二. 粘包问题的常规处理方法: 使用固定长度的包头 可以在发送数据前先发送一个固定长度的包头,包…

赠书活动~

关注公众号获得,发送抽奖

hcip---ppp协议

一:网络类型----根据二层数据链路层使用协议的不同,进行的划分 MA--多点接入网络 BMA--广播型多点接入网络 NBMA--非广播型多点接入网络 P2P--点到点网络:当网络中只能两台设备存在,那么这样的网络不需要MAC也能进行通信 二层协议…

用Axure RP 9制作滑块

制作流程 1.打开界面 放置一个水平线 修改长为400 线段为5 2.放入圆 如图 3.修改圆的长和宽 如图 4.将圆变成动态面板 5.设置交互事件 如图 6.增加交互事件 7.增加 8.修改成跟随水平

系统架构演变

1.1系统架构的演变 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思…

查看并解析当前jdk的垃圾收集器

概述:复习的时候,学看一下。 命令: -XX:PrintCommandLineFlags 打开idea,配置jvm 把上面命令输入jvm options中即可。 举例代码 这个代码的解析,我上篇文章有写,这个跟本文没有任何关系: …

Elasticsearch 常用信息

简述 本文针对 Elasticsearch(简称ES)集群6.x版本出现故障时,可通过提供的命令进行排查。 1、集群健康状态 集群健康状态状态说明red不是所有的主要分片都可用。表示该集群中存在不可用的主分片。可以理解为某个或者某几个索引存在主分片丢失…

C#,入门教程(31)——预处理指令的基础知识与使用方法

上一篇: C#,入门教程(30)——扎好程序的笼子,错误处理 try catchhttps://blog.csdn.net/beijinghorn/article/details/124182386 Visual Studio、C#编译器以及C#语法所支持的预处理指令,绝对是天才设计。 编译程序的时候会发现&am…

AI搜索引擎Perplexity来了,谷歌等老牌搜索引擎或许会有新的威胁?

Perplexity AI 是一家 AI 搜索初创公司,它通过结合内容索引技术和大型语言模型的推理能力,提供更便捷和高效的搜索体验。另外,最近很火的小兔子Rabbit R1硬件AI设备中的搜索功能正是这家公司的杰作。在短短一年半的时间里,一个企业…

Qt6入门教程 10:菜单栏、工具栏和状态栏

目录 一.菜单栏 1.Qt Designer 1.1添加菜单和菜单项 1.2添加二级菜单 1.3给菜单和菜单项添加图标 1.4给菜单项添加功能 2.纯手写 二.工具栏 1.Qt Designer 1.1添加工具栏按钮 1.2工具栏的几个重要属性 2.纯手写 三.状态栏 1.Qt Designer 2.纯手写 用Qt Creator新…

Elasticsearch分布式一致性原理剖析(二)-Meta篇

Elasticsearch分布式一致性原理剖析(二)-Meta篇 - 知乎 本文首发于云栖社区(Elasticsearch分布式一致性原理剖析(二)-Meta篇-博客-云栖社区-阿里云 ),由原作者转载。 前言 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行…

DAY07_SpringBoot—用法整合MyBatis

目录 1 SpringBoot 用法1.1 环境切换1.1.1 业务需求1.1.2 多环境编辑 1.2 热部署1.2.1 需求说明1.2.2 引入jar包1.2.3 配置IDEA环境 2 SpringBoot整合Mybatis2.1 导入数据库2.2 创建SpringBoot项目2.2.1 创建项目2.2.2 生成POM.xml文件如下2.2.3 Mavenjar包作用范围2.2.4 数据源…

【JavaWeb】日程管理系统 项目搭建 第二期

文章目录 一、数据库准备二、导入依赖 与 JDBC工具类三、pojo包处理四、daodao包工具类 五、service六、controllerservlet 基类 反射 七、加密工具类 MD5八、页面文件九、业务代码9.1 注册业务处理9.2 登录业务处理 总结 一、数据库准备 创建数据库: SET NAMES …

python-自动篇-办公-用Excel画画

文章目录 代码所遇问题ModuleNotFoundError: No module named xlsxwriterFileNotFoundError: [Errno 2] No such file or directory: 111.jpg 效果附件图片excel 代码 # coding: utf-8from PIL import Image from xlsxwriter.workbook import Workbookclass ExcelPicture(obje…

风二西CTF流量题大集合-刷题笔记|NSSCTF流量题(2)

21.[SUCTF 2018 招新赛]follow me SUCTF{password_is_not_weak} 22.[MoeCTF 2022]usb moectf{Learned_a6ou7_USB_trffic} 23.[黑盾杯 2020]Blue flag{Gre4t_j0B_ON_This_Blue_sh4rk} 24.[蓝帽杯 2022 初赛]domainhacker2 提交发现,07ab403ab740c1540c378b0f5aaa4…

vue(vue2)使用svg格式图标

先安装插件 配置svg文件夹,新建icons文件,svg文件夹放svg后缀文件 index.js文件中的配置 import Vue from "vue" import svgIcon from "/common/iconSvg/index.vue"Vue.component(svg-icon,svgIcon) //挂载全局组件//下面…

深入浅出AI落地应用分析:AI音乐生成之「Suno.ai」

接下来会每周集中体验一些通用或者垂直的AI落地应用,主要以一些全球或者国外国内排行较前的产品为研究对象,「AI 产品榜: aicpb.com」以专题的方式在博客进行分享。 本节主要介绍和体验AI音乐生成应用产品Suno AI,Suno来自目前最…