自学Python-标准库os

标准库:OS

os 顾名思义,就是与操作系统相关的标准库。如:文件,目录,执行系统命令。等。

导入模块

os是Python的标准库之一,所以可以直接导入。

1
import os

path子模块

涉及与磁盘文件操作,最常使用的当属 path 模块了,子模块可以导入直接使用,也可以通过os调用使用。

1
2
form os import path
os.path.方法

exists(path)

判断路径是否存在,如果存在返回true,如果不存在返回false。

1
2
import os
print os.path.exists("./") # true

isfile(path)

判断是否为文件,如果是文件返回true,如果不是返回false。

1
print os.path.isfile("./")  # false

isdir(path)

判断是否为目录,如果是目录返回true,如果不是返回false。

1
print os.path.isdir("./")  # true

basename(path)

返回不包含路径的文件名(包含扩展名)。

1
print os.path.basename("./123.py")  # 123.py

dirname(path)

返回文件所在目录。

1
print os.path.dirname("./123.py") # .

split(path)

返回由文件目录和文件名(包含扩展名)组成的元组。

1
print os.path.split("./123.py") # ('.', '123.py')

splitext(path)

返回一个由包含路径的文件名和扩展名组成的目录。

1
print os.path.splitext("./123.py") # ('./123', '.py')

join(path, *paths)

将目录名和文件名连接起来,相当于split(path)的反向操作。

1
2
a = os.path.split("./123.py")
print os.path.join(*a) # ./123.py

getsize(path)

返回文件大小,以字节为单位。

1
print os.path.getsize("./123.py")   #349

目录操作

listdir(path)

返回目录下所有文件和子目录组成的列表,相当于linux命令’ls’,不包括以’.’、’..’开头的特殊目录。

1
2
print os.listdir("./")
# ['base.py', 'set.py', 'statement1.py', 'bool.py', '123.py', 'md', 'dictionary.py', 'delete_M.py', 'test.txt']

mkdir(path)

创建一个目录,如果创建的目录存在则会报错,如果上级目录不在也会报错

1
2
os.mkdir("1/2") #报错:1/2目录不存在
os.mkdir("md") #报错:目录已经存在

makedirs(path)

更高级的创建目录,如果上级目录不存在则会递归创建目录。

1
2
os.makedirs("1/2")
os.makedirs("md") #报错:目录已经存在

rmdir(path)

删除目录,只能删除已经存在并且为空的目录,否则报错。

1
os.rmdir("1/2")

removedirs(path)

删除目录,只能删除已经存在并且为空的目录,否则报错。更高级的是删除以后会继续向上删除直到遇到不为空的目录为止。

1
2
os.makedirs("1/2")
os.removedirs("1/2")

remove(path)

删除文件,所给参数必须是文件,否则报错。

1
os.remove("test.txt")

其他os方法

getenv(key)

返回环境变量

1
2
print os.getenv("PATH")
# /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/share:/snap/bin

system(command)

在当前进程中,启动子进程,执行命令 command(字符串),主进程会阻塞,直到子进程执行完成,返回0代表执行成功。

1
print os.system("ls")   # 0

自学Python-标准库os
https://carl-5535.github.io/2020/11/13/自学python/自学Python-标准库os/
作者
Carl Chen
发布于
2020年11月13日
许可协议