【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
目录
相关文章
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
283 1
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
114 2
|
2月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
354 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
2月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
378 6
|
2月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
|
3月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
220 4
|
3月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
130 0
|
人工智能 C语言 C++
Python 与 C/C++ 交互的几种方式
  python作为一门脚本语言,其好处是语法简单,很多东西都已经封装好了,直接拿过来用就行,所以实现同样一个功能,用Python写要比用C/C++代码量会少得多。但是优点也必然也伴随着缺点(这是肯定的,不然还要其他语言干嘛),python最被人诟病的一个地方可能就是其运行速度了。
1262 0
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
258 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
293 104