OS模块的应用

  • rename()

修改文件或者文件夹的名称

1
2
3
4
5
格式:os.rename('来源路径','目标路径'),返回值:无

#修改文件夹或者文件的名称
#os.rename('D:/aaa.txt','D:/bbb.exe')
os.rename('D:/xyz','D:/a')
  • stat()

获取文件或者文件夹的状态信息

1
2
3
4
5
格式:os.stat(路径),返回值:容器数据 保存着很多的文件夹和文件的信息

#获取文件或者文件夹的状态信息
result = os.stat('D:/bbb.exe')
print(result)
  • system()

执行操作系统的命令

1
2
3
4
5
6
7
格式:os.system('系统命令'),返回值:无

#执行操作系统的命令
#os.system('dir D:')
#os.system('ping www.baidu.com')

注意:linux,和window,unix的命令是不同的

与环境变量相关的方法

环境变量:

1
2
简介:环境变量就是一组路径的组合。
作用:执行系统命令的时候提供查找文件的路径
  • getenv()

获取系统的环境变量

1
2
3
4
5
格式:os.getenv('环境变量名'),返回值:环境变量信息

#getenv()
result = os.getenv('path')
print(result)
  • putenv()

设置python的环境变量

1
2
3
4
格式:os.putenv('环境变量名',值)

#putenv()
os.putenv('path','d:/abc/xyz')
  • os模块中环境变量成员os.environ
1
2
3
4
5
6
7
8
9
10
专门用于处理python的环境变量
os.environ 成员值

#os模块中环境变量成员os.environ
#获取环境变量
print(os.environ['path'])
#设置环境变量
#os.environ['path'] = 'D:/abc/xyz'#直接覆盖环境变量
os.environ['path'] = os.environ['path'] + ';'+ 'D:/abc/xyz'
print(os.environ['path'])

os模块中常用的值

1
2
3
curdir  获取当前的路径
. 表示当前文件夹 【相对路径】
print(os.curdir)
1
2
3
pardir  获取上层文件夹
.. 表示上一层文件夹 【相对路径】
print(os.pardir)
1
2
path    这是os模块中的子模块 内容非常多
print(os.path)
1
2
3
4
name    获取系统的标识符号
nt 表示window操作系统
posix 表示linux或者unix系统
print(os.name)
1
2
3
4
sep   获取当前系统的路径分割符号
\ window系统的路径分隔符
/ linux和unix的路径分隔符
print(os.sep)
1
2
3
extsep  获取文件名称与文件后缀名称之间的分隔符
所有操作系统都是.
print(os.extsep)
1
2
3
4
5
linesep  获取系统的换行符号
window \r\n
linux \n
macos 10.9 ->\r 10.10->\n
print(repr(os.linesep))

路径详解

分类:相对路径和绝对路径

绝对路径:完整描述路径的表示方式
    C:/window/system32/calc.exe             window
    /home/xdl/image                         linux
    /home/xdl/image                         unix

相对路径:使用.或者..开头的路径
    ./image/123.jpg【等价于image/123.jpg】
    ../abc/xyz/aaa
1
2
3
4
5
#open('xd1.txt','w') #相当于 ./xd1.txt
open('./xd2.txt','w')

open('../xd3.txt','w')
open('../../xd4.txt','w')

os的path子模块

  • abspath()

将相对路径转化为绝对路径

1
2
3
4
5
格式:os.path.abspath(路径),返回值:绝对路径

path1 = '../../123.txt'
result = os.path.abspath(path1)
print(result)
  • basename()和dirname()

获取路径的主体部分,获取路径中路径部分。

1
2
3
4
5
6
7
8
9
10
格式:os.path.basename(路径),返回值:主体部分
格式:os.path.dirname(路径),返回值:路径部分

path1 = 'c:/window/system32/abc.txt'
#path1 = 'c:/window/system32/abc'

result1 = os.path.basename(path1)
print(result1)
result2 = os.path.dirname(path1)
print(result2)
  • join()

将两个路径合并到一起

1
2
3
4
5
6
格式:os.path.join(路径1,路径2),返回值:组合之后的路径信息

path1 = 'C:\\window\\abc'
path2 = 'xyz\\123.txt'
result = os.path.join(path1,path2)
print(result)
  • split()

直接将路径拆分成路径部分和主体部分组成的元组

1
2
3
4
5
格式:os.path.split(路径),返回值:主体和路径组成的元组

path1 = 'D:/a/b/c/d/xyz.exe'
result = os.path.split(path1)
print(result)
  • splitext()

将路径拆分为文件后缀和其他部分

1
2
3
4
5
格式:os.path.splitext(路径),返回值:后缀信息和其他信息组成的元组

path1 = 'D:/a/b/c/d/123.jpg'
result = os.path.splitext(path1)
print(result)
  • getsize()

获取文件的大小

1
2
3
4
5
格式:os.path.getsize(文件路径)

path1 = 'D:/friend.exe'
result = os.path.getsize(path1)
print(result)
  • isdir()

检测是否是一个文件夹

1
2
3
4
5
格式:os.path.isdir(路径),返回值:布尔值

path1 = 'C:/windows'
result = os.path.isdir(path1)
print(result)
  • isfile()

检测是否是一个文件

1
2
3
4
5
格式:os.path.isfile(路径),返回值:布尔值

path1 = 'D:/friend.exe'
result = os.path.isfile(path1)
print(result)
  • islink()在window下无效

检测是否是一个连接

  • getctime()

获取文件的创建时间(get create time)

1
2
3
4
5
格式:os.path.getctime(),返回值:创建文件的时间戳

path1 = 'D:/friend.exe'
result = os.path.getctime(path1)
print(result)
  • getmtime()

获取文件的修改时间(get modify time)

1
2
3
4
5
格式:os.path.getmtime(),返回值:修改文件的时间戳

path1 = 'D:/friend.exe'
result = os.path.getmtime(path1)
print(result)
  • getatime()

获取文件的访问时间(get active time)

1
2
3
4
5
格式:os.path.getatime(),返回值:最后一次访问文件的时间戳

path1 = 'D:/friend.exe'
result = os.path.getatime(path1)
print(result)
  • exists()

检测指定路径是否真的存在

1
2
3
4
5
格式:os.path.exists(路径),返回值:布尔值

path1 = 'D:/child.exe'
result = os.path.exists(path1)
print(result)
  • isabs()

检测路径是否是一个绝对路径

1
2
3
4
5
6
格式:os.path.isabs(路径),返回值:布尔值

#path1 = '../123.jpg'
path1 = 'c:/123.jpg'
result = os.path.isabs(path1)
print(result)
  • samefile()

检测两个路径是否指向同一个文件或者文件夹

1
2
3
4
5
6
7
8
格式:os.path.samefile(路径1,路径2),返回值:布尔值

#相对路径
path1 = './xd1.txt'
#绝对路径
path2 = 'C:/Users/xdl/PycharmProjects/python_13/test1.txt'
result = os.path.samefile(path1,path2)
print(result)