Python 核心模块
os
os
模块主要和操作系统交互。
文件和目录操作
os.getcwd()
获取当前的工作目录os.chdir(path)
改变当前工作目录os.listdir(path=None)
列举当前目录下的文件列表os.mkdir(path, mode=511, *, dir_fd=None)
创建目录os.makedirs(name, mode=511, exist_ok=False)
递归创建多级目录os.rmdir(path, *, dir_fd=None)
移除空目录os.remove(path, *, dir_fd=None)
删除文件(和unlink()
一样)os.rename(src, dst)
重命名文件或目录os.stat(path)
获取文件的元数据
路径管理
os.path
模块用于处理常见的路径操作。
os.path.abspath(path)
返回路径对应的绝对路径os.path.exists(path)
检测路径是否存在os.path.join(a, *p)
拼接多个路径片段os.path.split(p)
把路径拆解为(head, tail)
元组,其中tail
是最后一个斜线之后的内容os.path.splitext(p)
把路径拆分成(root, ext)
元组,其中ext
是文件扩展名os.path.getsize(filename)
返回文件大小,以字节为单位os.path.isfile(path)
判断路径是否普通文件os.path.isdir(s)
判断路径是否现存目录os.path.dirname(p)
获取路径中的目录部分os.path.basename(p)
获取路径中的文件部分os.path.sep
路径分隔符,在 macOS 上是/
os.path.abspath('a') # '/Users/codeman/a'
os.path.join('a', 'b', 'c') # 'a/b/c'
os.path.dirname('a/b/c.txt') # 'a/b'
os.path.basename('a/b/c.txt') # 'c.txt'
os.path.split('a/b/c.txt') # ('a/b', 'c.txt')
os.path.splitext('a/b/c.txt') # ('a/b/c', '.txt')
环境变量
os.environ
访问和修改操作系统的环境变量
os.environ.get('PAGER')
# 'less'
进程管理
os.system(command)
在子 shell 中执行command
命令os.fork()
分叉一个子进程(child process)。子进程返回0
,父进程返回 PID
random
random
模块用于生成伪随机数。
伪随机数的生成依赖梅森旋转算法(Mersenne Twister),这种算法久经考验,速度够快,适合一般场景用途,不适合密码安全领域。
random.choice(seq)
从非空序列中随机取一个值random.randrange(start, stop[, step])
生成序列中的某一个数字。作用类似于choice(range(start, stop, step))
,但是支持任意大的范围,并且对一般场景做了优化random.randint(a, b)
返回一个随机整数 N,N 满足a <= N <= b
。相当于randrange(a, b+1)
的别名random.shuffle(x)
对序列原地随机调整顺序random.sample(population, k)
从序列中随机提取k
个元素,原序列不受影响
import random
random.choice([1, 2, 3, 4, 5, 6]) # 3
random.choice('abc') # 'c'
random.randrange(1, 99, 2) # 95
random.randint(1, 6) # 6
a_list = [1, 2, 3, 4, 5, 6]
random.shuffle(a_list)
a_list # [4, 3, 2, 1, 6, 5]
a_list = [1, 2, 3, 4, 5, 6]
result = random.sample(a_list, 3)
a_list # [1, 2, 3, 4, 5, 6]
result # [5, 2, 1]
sys
sys
模块主要和 Python 解释器交互。
sys.argv
获取命令行参数,这是一个列表,第一个元素是入口脚本名称,后面依次是空格分割的参数sys.exit(status=None)
通过抛出异常SystemExit(status)
退出应用。其中的status
是状态码,默认是0
。应用退出后,状态码可以通过 Shell 特殊变量$?
获取。sys.stdin
、sys.stdout
和sys.stderr
表示标准输入、标准输出和错误流。sys.path
可以访问和修改 Python 模块的搜索路径。sys.version
获取 Python 解释器的版本信息。sys.byteorder
获取解释器的字节顺序
sys.version
# 3.12.6 (main, Sep 7 2024, 20:50:40) [Clang 14.0.0 (clang-1400.0.29.202)]
sys.byteorder
# 'little'
这是一个持续更新的文档