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

简介: Python的os模块(Operating System Interface)提供了访问操作系统相关功能的接口,它允许程序与底层操作系统交互,对文件系统、进程、套接字等底层操作进行控制。典型的用法是程序打开某个文件时,os库可以帮助我们判断文件是否存在/是否可读/是否可写等等,同时也可以帮助我们创建和删除目录、文件链接等等。os库提供了一系列的函数和方法,用于处理和管理操作系统文件、文件夹,以及运行和控制进程,具体包括以下功能:对文件和目录(文件夹)的操作:包括创建、重命名、删除等等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

import os
current_path = os.getcwd()
print(current_path)

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

import os
os.chdir("..")
current_path = os.getcwd()
print(current_path)

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

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

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

import os

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

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

import os

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

获取文件信息
使用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)   # 文件最后修改时间(时间戳)

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

import os

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

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

import os

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

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


import os

# 检查文件或目录是否存在
print(os.path.exists("example.txt"))  # True
print(os.path.exists("no_file.txt"))  # False
目录
相关文章
|
11月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
666 1
|
11月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
2283 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
11月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
992 0
|
10月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
685 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
10月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
958 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
11月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1683 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
11月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
326 0
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
938 2
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
650 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()

热门文章

最新文章