【 一 】简介
os
就是 “operating system” 的缩写,顾名思义,os
模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用 os
模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出 OSError
异常或其子类异常。
注意: 本模块提供了一种使用与操作系统相关的功能的便捷式途径。如果是读写文件的话,建议使用内置函数 open() ;如果是路径相关的操作,建议使用
os
的子模块 os.path ;如果要逐行读取多个文件,建议使用 fileinput 模块;要创建临时文件或路径,建议使用 tempfile 模块;要进行更高级的文件和路径操作则应当使用 shutil 模块。
当然,使用 os
模块可以写出操作系统无关的代码,并不意味着 os
无法调用一些特定系统的扩展功能,但要切记一点:一旦这样做就会极大损害代码的可移植性。
此外,导入 os
模块时还要小心一点,千万 不要 为了图调用省事儿而将os
模块解包导入,即不要使用:
from os import *
来导入os模块;否则os.open() 将会覆盖内置函数open(),从而造成预料之外的错误。
【 二 】引言
【 1 】 模块的导入
模块的导入语法为:import + 模块名
import [ ɪmˈpɔːt]:输入,导入。
注意:import 与模块名之间有个空格。
一个模块就是一个写好了代码的Py 文件,里面有类、函数、变量。
我们通常需要通过调用模块中的类、函数、变量来实现某些特定的功能:
调用模块中的某一个类、函数或变量的语法如下:
1. 调用模块下的类:模块名.类名(),如 csv.DictReader()
2. 调用模块下的函数:模块名.函数名(),如 os.mkdir()
3. 调用模块下的变量:模块名.变量名,如 os.name()
【 3 】常用的os 模块命令
注意:os 模块是Python的内置模块,使用前不需要安装,但需要import 导入。
【 三 】常用功能
注意: os模板中大多数接收路径作为参数的函数也可以接受“文件描述符”作为参数。
文件描述: file descriptor, 在Python文档中简记为fd,是一个与某个打开的文件对象绑定的整数们可以理解为该文件在系统中的编号。
【 1 】 os.getcwd()获取当前工作目录
import oslujing_dir = os.getcwd()
print('当前的工作目录为:',lujing_dir)
# 当前的工作目录为: C:\Users\小白\PycharmProjects\pythonProject2\3
【 2 】os.mkdir()创建目录
import osnew_dir = '创建新的目录'
os.mkdir(new_dir)
new_dir = 就是你要创建目录的名字
【 3 】os.listdir()列出目录内容
import os
dir_path = '.'
dir_mulu = os.listdir(dir_path)
for i in dir_mulu:print(i)
# 01.py
# 01.txt
# 02.py
# 02.txt
# 03.py
# 05.py
# 1.py
# 1作业.py
# 2.py
# 2.练习.py
# 3.py
# 6.py
# os模板.py
# 创建新的目录
# 时间模块.py
# 随机模块.py
【 4 】os.remove()删除文件或os.rmdir()目录
import os
# 删除文件
file_path = '5.txt'
os.remove(file_path)
# 删除目录
dir_path = '创建新的目录'
os.rmdir(dir_path)
【 5 】os.rename重命名文件或目录
import os
# 旧的文件名字目录也可以
old_name = '6.py'
# 新的文件路径
new_name = '06.py'
os.rename(old_name,new_name)
----------------------------------------------------------------------------------------------
【 6 】os.path.exists检查路径是否存在
import os
path = '02.txt'
exists = os.path.exists(path)
print("检查路径是否存在:",exists)
# 检查路径是否存在: True
【 7 】os.system()执行系统命令
import oscommand = 'ls-l'
os.system(command)
【 8 】os.path.abspath()获取文件或者目录的决定路径
import os
bt_path = '1.txt'
new_path = os.path.abspath(bt_path)
print('获取文件或者目录的绝对路径:',new_path)
# 获取文件或者目录的绝对路径: C:\Users\小白\PycharmProjects\pythonProject2\3\1.txt
【 9 】os.path.join() 拼接路径
import osdirectory = "/path/to/directory/test"
filename = "01.txt"
file_path = os.path.join(directory, filename)
print("File path: ", file_path)# File path: /path/to/directory/test\01.txt
【 10 】os.oath.isdir()判断是否为文件或者目录
import os
path = '3.txt'
path1 = 'func'
is_wenjian = os.path.isfile(path)
is_mulu = os.path.isdir(path1)
print('是不是文件:',is_wenjian)
print('是不是目录:',is_mulu)
【 11】 os.path.getmtime()获取文件大小和修改时间
import os,timepath ='01.txt'
size = os.path.getsize(path)
xiu_time = os.path.getmtime(path)
formatt_time = time.ctime(xiu_time)
print(size)
print(xiu_time)
print(formatt_time)
# 161
# 1702544373.5834434
# Thu Dec 14 16:59:33 2023
【 12 】获取当前文件所在的路径
import os
#获取当前脚本所在的文件夹路径
name_dir = os.path.dirname(os.path.abspath(__file__))
print('获取当前文件夹路径',name_dir)
# 获取当前文件夹路径 C:\Users\小白\PycharmProjects\pythonProject2\3
需要注意的是,在使用
os
模块时,需要根据操作系统的不同考虑路径的分隔符问题。在 Windows 中,路径分隔符为反斜杠\
;在 Unix/Linux/Mac 中,路径分隔符为正斜杠/
。可以使用os.sep
变量获取当前操作系统的路径分隔符。