前言:
os和sys模块使用起来容易模糊,写一下官方的解释。
os模块提供了一种方便的用户操作操作系统的函数方法
sys模块提供由解释器使用或者维护的变量与解释器进行交互的函数
总结: os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。
Python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关。
导入模块
import os
os模块
os模块常用方法
常用文件和文件夹的操作
- getcwd()
- 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
-
result = os.getcwd() print(result)
- chdir()
- 改变当前工作目录
-
os.chdir('/home/sy') result = os.getcwd() print(result)
- listdir()
- 获取指定文件夹内所有内容的名称列表
-
result = os.listdir('/home/sy') print(result)
- mkdir()
- 创建文件夹
-
os.mkdir('girls')
- makedirs()
- 递归创建文件夹
-
os.makedirs('/home/sy/a/b/c/d')
- rmdir()
- 删除空目录
-
os.rmdir('girls')
- removedirs()
- 递归删除文件夹,必须都是空目录
-
os.removedirs('/home/sy/a/b/c/d')
- rename()
- 文件或者文件夹重命名
-
os.rename('/home/sy/a','/home/sy/alibaba' os.rename('02.txt','002.txt')
- stat()
- 获取文件或者文件夹的信息
-
result = os.stat('/home/sy/PycharmProject/Python3/10.27/01.py) print(result)
- system()
- 执行系统命令(危险函数)
-
result = os.system('pwd') print(result)
常用环境变量的操作
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
- getenv()
- 获取系统的环境变量
-
result = os.getenv('PATH') print(result.split(':'))
- putenv()
- 将一个目录添加到环境变量中(临时增加,只对当前脚本有效)
-
os.putenv('PATH','/home/sy/下载') os.system('syls')
其他方法
- exit()
- 退出终端的命令
os模块中常用的属性
- curdir
- 表示当前文件夹,但是一般用'.'来表示,一般情况下可以省略
-
print(os.curdir)
- pardir
- 表示上层文件夹,但是一般用'..'来表示,不可以省略
-
print(os.pardir)
- name
- 获取代表操作系统的名称或者字符串
-
print(os.name) #posix -> linux或者unix系统 nt -> window系统
- sep
- 获取系统路径间间隔符
-
print(os.sep) # window -> linux ->/
- extsep
- 获取文件名称和后缀之间的间隔符号
-
print(os.extsep) # window和inux -> .
- linesep
- 获取操作系统的换行符号
-
print(repr(os.linesep)) # window -> linux/unix ->
os.path子模块
常用方法
- abspath()
- 将相对路径转换为绝对路径
-
path = './boys'#相对 result = os.path.abspath(path) print(result)
- dirname()
- 获取完整路径当中的目录部分
-
path = '/home/sy/boys' result = os.path.dirname(path) print(result) # /home/sy
- basename()
- 获取完整路径当中的主体部分
-
path = '/home/sy/boys' result = os.path.basename(path) print(result) # boys
- split()
- 将一个完整的路径切割成目录部分和主体部分
-
path = '/home/sy/boys' result = os.path.split(path) print(result) # ('/home/sy', 'boys')
- join()
- 将两个路径合并成一个
-
var1 = '/home/sy' var2 = '000.py' result = os.path.join(var1,var2) print(result) # /home/sy 00.py , 产生这个结果的原因是,我在window下运行,用的是Linux下的目录,但是拼接它采用的是当前系统默认的路径间间隔符,而window默认的是‘’。
- splitext()
- 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀
-
path = '/home/sy/000.py' result = os.path.splitext(path) print(result) # ('/home/sy/000', '.py')
- getsize()
- 获取文件的大小
-
path = './000.py' result = os.path.getsize(path) print(result) # 1981
- isfile()
- 检测是否是文件
-
path = '/home/sy/000.py' result = os.path.isfile(path) print(result)
- isdir()
- 检测是否是文件夹
-
result = os.path.isdir(path) print(result)
- islink()
- 检测是否是一个软链接
-
path = '/initrd.img.old' result = os.path.islink(path) print(result)
- 关于文件的操作时间
-
#getctime() 获取文件的创建时间 get create time #getmtime() 获取文件的修改时间 get modify time #getatime() 获取文件的访问时间 get active time
-
import time filepath = '/home/sy/下载/chls' result = os.path.getctime(filepath) print(time.ctime(result)) result = os.path.getmtime(filepath) print(time.ctime(result)) result = os.path.getatime(filepath) print(time.ctime(result))
-
- exists()
- 检测某个路径是否真实存在
-
filepath = '/home/sy/下载/chls' result = os.path.exists(filepath) print(result)
- isabs()
- 检测一个路径是否是绝对路径
-
path = '/boys' result = os.path.isabs(path) print(result) # True
- samefile()
- 检测两个路径是否指向是同一个文件
-
path1 = '/home/sy/下载/001' path2 = '../../../下载/001' result = os.path.samefile(path1,path2) print(result)
- ismount()
- 检查指定参数是否是挂载点
-
os.path.ismount("/mnt/cdrom")
常用属性
- environ
- 获取和设置系统环境变量的内置值
- 获取, 和os中的os.getenv('PATH')同效果
-
print(os.environ['PATH'])
-
- 设置
-
os.environ['PATH'] += ':/home/sy/下载' os.system('chls')
-
- 获取, 和os中的os.getenv('PATH')同效果
- 获取和设置系统环境变量的内置值