【五一创作】Python 一文了解 OS 操作系统交互库简单使用方法

news2024/12/23 23:23:08

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?type=collect个人简介:打工人。

持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。

如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com 

目录

前言

OS模块的发展史

使用方法

1. 获取当前工作目录

2. 改变工作目录 

3. 列出目录下的文件和子目录 

4. 创建目录 

5. 删除目录 

6. 获取文件信息 

7. 删除文件 

8. 重命名文件或目录 

9. 检查文件或目录是否存在 


前言

        Python的os模块(Operating System Interface)提供了访问操作系统相关功能的接口,它允许程序与底层操作系统交互,对文件系统、进程、套接字等底层操作进行控制。典型的用法是程序打开某个文件时,os库可以帮助我们判断文件是否存在/是否可读/是否可写等等,同时也可以帮助我们创建和删除目录、文件链接等等。

        os库提供了一系列的函数和方法,用于处理和管理操作系统文件、文件夹,以及运行和控制进程,具体包括以下功能:

  1. 对文件和目录(文件夹)的操作:包括创建、重命名、删除等等。

  2. 文件读写操作:包括打开文件、读文件、写文件、关闭文件等等。

  3. 进程管理:包括获取进程号、创建新进程、杀死进程等等。

  4. 与操作系统相关的其他功能:如环境变量、进程调度、用户uid、gid等相关的操作。

        总之,os库是Python中一个非常基础、底层的库,提供了丰富的操作系统相关的接口,使用os库可以让Python程序与不同的操作系统(如Windows、Linux、Mac OS)交互,可以让Python程序员在跨平台、与操作系统交互、管理文件系统等方面更方便、更灵活地编写Python程序。

OS模块的发展史

        Python的os模块是一个非常重要和强大的模块,它提供了对操作系统的访问和操作。os模块从Python的最初版本开始就存在,但随着时间的推移,它不断地得到改进和扩展,以适应不同操作系统和需求的变化。

        下面是Python os模块的发展史:

  1. Python 1.0时期 Python最初的os模块仅仅提供了基础的文件操作和目录操作功能,如文件的打开、读写、关闭、文件的重命名和删除等。当时,os模块只能在Unix系统上使用。

  2. Python 1.5时期 在Python 1.5版本中,os模块开始提供对Windows系统的支持。并且,新增了更多的文件和文件夹操作方法,以及一些用于跨平台相关操作的方法。

  3. Python 2.0时期 Python 2.0时期,os模块更新了大量的方法和属性。新加入了许多能够读取和操作Unix进程信息的方法,包括获取进程pid、获取当前进程gid、uid等。

  4. Python 3.0时期 在Python 3.0之后,os模块再次更新,主要目的是删除已过时的方法和属性,改进API设计,以使其更加简洁和清晰。

  5. Python 3.3时期 Python 3.3时期,os模块新增了一些基于posix的方法和函数,包括os.chdir、os.uname、os.getlogin等。

        总结来说,随着Python的发展,os模块不断地得到改进和扩展,以适应不同的操作系统和需求的变化,为使用Python进行操作系统级别的任务提供了良好的支持和便利。

使用方法

1. 获取当前工作目录

        使用os.getcwd()可以获取当前工作目录。

import os

# 获取当前工作目录
current_path = os.getcwd()
print(current_path)

2. 改变工作目录 

        使用os.chdir()可以改变当前工作目录。

import os

# 改变当前工作目录到上一级
os.chdir("..")
# 获取当前新的工作目录
current_path = os.getcwd()
print(current_path)

3. 列出目录下的文件和子目录 

        使用os.listdir()可以列出当前目录下的所有文件和子目录。 

import os

# 列出当前目录下的所有文件和子目录
file_list = os.listdir(".")
for file_name in file_list:
    print(file_name)

4. 创建目录 

        使用os.mkdir()可以创建一个新的目录。 

import os

# 创建一个新的目录
os.mkdir("new_dir")

5. 删除目录 

        使用os.rmdir()可以删除一个目录,但要注意,被删除的目录必须是空的。 

import os

# 删除一个目录(如果目录为空)
os.rmdir("new_dir")

6. 获取文件信息 

        使用os.stat()可以获取文件的信息,例如文件大小、创建时间、修改时间等。 

import os

# 获取文件信息
file_info = os.stat("example.txt")
print(file_info.st_size)    # 文件大小
print(file_info.st_atime)   # 文件最后访问时间(时间戳)
print(file_info.st_mtime)   # 文件最后修改时间(时间戳)

7. 删除文件 

        使用os.remove()可以删除一个文件。 

import os

# 删除一个文件
os.remove("example.txt")

8. 重命名文件或目录 

        使用os.rename()可以重命名一个文件或目录。

import os

# 重命名一个文件或目录
os.rename("old_name.txt", "new_name.txt")

9. 检查文件或目录是否存在 

        使用os.path.exists()可以检查指定的文件或目录是否存在。

import os

# 检查文件或目录是否存在
print(os.path.exists("example.txt"))  # True
print(os.path.exists("no_file.txt"))  # False

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

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

相关文章

linux系统下C/C++静态库和动态库的制作及使用

C/C静态库和动态库的制作及使用 1 静态库的制作静态库简介1.1 编写源码1.2 生成目标文件1.3 ar归档,打包成静态库1.4 查看静态库1.5 测试静态库1.6 运行测试 2 动态库2.1 编写 Makefile2.2 编译链接动态库 1 静态库的制作 静态库简介 一般情况下,为了更好的支持开…

LC正弦波振荡器【高频电子线路】【Multisim】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、观察起振过程 2、观测稳定的输出波形及振荡频率的变化 3、测试静态工作点对起振和输出幅度的影响 4、测试回路电容对振荡频率和输出幅度的影响,并理论上给出解释 四、实验结果分析 一、实验…

【社区图书馆】【图书活动第四期】

目录 一、前言 二、作者简介 三、《PyTorch高级机器学习实战》内容简介 四、书目录 一、前言 今天,偶尔逛到csdn社区图书馆,看到有活动 “【图书活动第四期】来一起写书评领实体奖牌红包电子勋章吧!”(活动到今天结束&#xf…

荔枝派Zero(全志V3S)开启 SSH 实现远程连接和文件传输

文章目录 前言一、配置 buildroot二、编译 buildroot三、拷贝到 SD 卡四、测试 ssh1、修改 /etc/ssh/sshd_config 文件2、运行 /usr/sbin/sshd3、使用 SecureCRT 测试4、使用 SecureFx 测试 前言 本文将在 Buildroot 根文件系统开启 ssh 功能。 一、配置 buildroot 1、在 bui…

《软件测试》[Ron Patton](一)-软件测试背景、软件开发过程、软件测试基础

《软件测试(原书第2版)》作者: [美] Ron Patton 这本书是软件测试入门的经典书籍。我在刚入行时,也读过这本书,受益匪浅。并且即使是工作了这么多年,再回头看这本书,会发现怎么都逃不出这本书的范围。这个系…

【视频教程解读】Window上安装和使用autogluon V0.4

1.使用conda安装的python环境 教程使用的是极简版miniconda,由于我们的电脑中安装了anaconda,所以不需要进行进一步安装。python版本为3.9,博客里面有anaconda和python版本的对应关系。注意查看版本autogluon V0.4需要3.8或者3.9和3.10,pip版…

Linux:网络基础1

网络协议分层 所有网络问题,本质都是通信距离变长了,为了尽可能减少通信成本,定制了协议。 协议分层的优势: 软件设计方面的优势 - 低耦合 一般我们的分层依据: 功能比较集中,耦合度比较高的模块-- 一层 &#xff0c…

【Vue 基础】尚品汇项目-03-home首页搭建(全局组件与局部组件)

1. 完成三级联动组件(全局组件) 由于三级联动组件在Home、Search、Detail中都需使用,因此将三级联动组件作为全局组件,这样只需要注册一次,就可以在项目任意地方使用。 新建“home/TypeNav/index.vue”,写…

深度学习技巧应用10-PyTorch框架中早停法类的构建与运用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用10-PyTorch框架中早停法类的构建与运用,文章将介绍深度学习训练过程中的一个重要技巧—早停法,以及如何在PyTorch框架中实现早停法。文章将从早停法原理和实践出发,结合实际案例剖析早停法的优缺点及在PyTorch中的应…

[创新工具和方法论]-02- DOE实验设计步骤

文章目录 1.DOE设计1.1 基于OFAT的传统实验设计:1.2 基于DoE的现代实验设计:1.3 DOE和OFAT的比较1.4 如何利用好DOE1.4.1 规划1.4.2 筛选1.4.3 表征1.4.4 优化1.4.5 确认 2. 步骤2.1陈述实际的问题和实验的目的2.2因果链分析,提取重要的因子2.3选择Y的响…

永磁同步电机(PMSM)无传感器控制基于滑膜观测器Matlab/Simulink仿真分析

文章目录 前言一、状态观测器二、滑膜状态观测器2.1.滑膜观测器的原理2.2.传统的滑膜观测器2.3.改进的滑膜观测器 三、Matlab/Simulink仿真分析3.1.仿真电路分析3.1.1 电机控制模式切换3.1.2 速度环控制3.1.3 电流环控制3.1.4 电机主电路 3.2.仿真结果分析 总结 前言 本章节采…

跳跃游戏 (DFS->记忆化搜索->动态规划/贪心证明)

一.跳跃游戏简单介绍 1. 跳跃游戏简单介绍 跳跃游戏是一种典型的算法题目,经常是给定一数组arr,从数组的某一位置i出发,根据一定的跳跃规则,比如从i位置能跳arr[i]步,或者小于arr[i]步,或者固定步数&#…

【HQL - 查询用户的累计消费金额及VIP等级】

水善利万物而不争,处众人之所恶,故几于道💦 题目: 从订单信息表(order_info)中统计每个用户截止其每个下单日期的累积消费金额,以及每个用户在其每个下单日期的VIP等级。 用户vip等级根据累积消费金额计算&#xff0…

Unity之OpenXR+XR Interaction Toolkit基本配置

前言 XR Interaction Toolkit 是Unity基于OpenXR标准,发布的一套XR工具,目的是方便我们快速接入XR相关的SDK,并且做到兼容不同VR设备的目的,目前流行的VR设备如Oculus,Metal,HTC Vive,Pico等统…

JavaSE第三章 访问修饰符,Collection,List

这里写目录标题 一 访问修饰符二 集合1.1 数组1.2 集合1.3 读Collection的源码1.3.1 add添加方法1.3.2 clear,size,isEmpty方法1.3.3 remove 方法1.3.4 equals方法与contain方法1.3.5 遍历,迭代器或者增强for循环1.3.6 迭代器重点 1.4 List1.…

numpy的下载、数据类型、属性、数组创建

下载numpy 因为numpy不依赖于任何一个包所以numpy可以直接使用pip命令直接下载 下载命令: pip install numpy # 默认从https://pypi.org/simple 下载 pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载 pip install nump…

一步步解密微商城系统开发流程

作为现代商业的重要组成部分,电子商务系统的建设对于企业的发展至关重要。然而,对于一些小型企业来说,建设一个完整的电子商务系统可能会耗费大量的时间和金钱。微商城系统的出现有效地解决了这个问题,因为它可以在不需要太多资金…

趣说数据结构(练习1) —— 顺序表/链表力扣刷题

练习 1 —— 顺序表/链表力扣刷题 1. 合并两个有序链表 力扣题目地址:https://leetcode.cn/problems/merge-two-sorted-lists/ 问题描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#x…

【云计算•云原生】4.云原生之什么是Kubernetes

文章目录 Kubernetes概念Kubernetes核心概念集群podConfigMap Kubernetes架构master节点的组件worker节点组件 Kubernetes网络架构内部网络外部网络 k8s各端口含义 Kubernetes概念 K8S就是Kubernetes,Kubernetes首字母为K,末尾为s,中间一共有…

全球5G市场最新进展及未来展望

从智慧医疗到万物互联,从无人驾驶到关乎我国未来发展的“新基建”,自2019年全球5G商用启动后,5G就步入了发展“快车道”;2022年继续保持快速稳定的增长态势,在网络建设、人口覆盖、终端形态等方面发展势头强劲,在技术标…