5.1sys模块
定义
sys模块主要负责与Python解释器进行交互
常用方法
import sys #如何查看sys里面有哪些方法 #help(sys) #利用以上的不直观,我们可以dir print(dir(sys))
属性或方法 | 描述 |
---|---|
sys.argv | 获取命令行参数列表,第一个参数是程序本身 |
sys.exit(n) | 退出 Python 程序,exit(0) 表示正常退出。当参数非 0 时,会引发一个 SystemExit 异常,可以在程序中捕获该异常 |
sys.version | 获取 Python 解释程器的版本信息 |
sys.maxsize | 最大的 Int 值,在 64 位操作系统上是 263-1 |
sys.path | 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值 |
sys.platform | 返回操作系统平台名称 |
sys.stdin | 输入相关 |
sys.stdout | 输出相关 |
sys.stderr | 错误相关 |
len() | 获取长度 |
sys.path.insert(index,字符) | 指定下标插入数据 |
sys.path = [] | 删除所有路径 |
sys.getfilesystemencoding() | 获取文件系统使用编码方式,默认是 UTF-8 |
sys.modules | 以字典的形式返回所有当前 Python 环境中已经导入的模块 |
sys.builtin_module_names | 返回一个列表,包含所有已经编译到 Python 解释器里的模块的名字 |
sys.modules.keys() | 返回所有已将导入模块的key |
sys.flags | 命令行标识状态信息列表 |
sys.getrefcount(object) | 返回对象的引用数量 |
sys. getrecursionlimit() | 返回 Python 最大递归深度,默认为 1000 |
sys.getsizeof(object[, default]) | 返回对象的大小 |
sys.getswitchinterval() | 返回线程切换时间间隔,默认为0.005秒 |
sys.setswitchinterval(interval) | 设置线程切换的时间间隔,单位为秒 |
sys. getwindowsversion() | 返回当前 Windows 系统的版本信息 |
sys.hash_info | 返回 Python 默认的哈希方法的参数 |
sys.implementation | 当前正在运行的 Python 解释器的具体实现,如 CPython |
sys.thread_info | 当前线程信息 |
代码
此代码在vscode里面写好在cmd窗口去运行 python 文件名字 参数 D:\axc\Python\PythonTemp>python count.py 12 3 4 5 import sys print(sys.argv)
#exit(n)退出 Python 程序,exit(0) 表示正常退出 for i in range(10): if i==5: exit(0) print(i)
# sys.version | 获取 Python 解释程器的版本信息 import sys print(sys.version) #3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] # sys.maxsize | 最大的 Int 值,在 64 位操作系统上是 263-1 print(sys.maxsize) #9223372036854775807 # sys.path | 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值 print(sys.path)
import sys print('Path 包括:', len(sys.path), '个部分构成') sys.path.insert(0,"simple") #在路径首位置添加 print(sys.path) a = sys.builtin_module_names print(a) #所有内建模块的名字
import sys print(sys.modules) print("------------------------------------------------") print(sys.modules.keys())
#sys.getrefcount(object)返回对象的引用数量 import sys a = [1, 2, 3] b = a print(sys.getrefcount(a)) # 3 注意,这个列表被a、b以及getrefcount()三个地方调用,因此输出结果为3。
练习
""" 定义一个函数,属于一个名字,查看是否是内建模块 """ def is_module(name): if name in a: print("是一个模块") else: print("什么都不是") is_module("time")
5.2os模块
定义
os模块与操作系统交互,提供了访问操作系统底层的接口
sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境
常用方法
方法或变量 | 用途 |
---|---|
os.mkdir('dirname') | 生成单级目录,相当于shell中mkdir dirname |
os.makedirs('dirname1/dirname2') | 可生成多层递归目录 |
os.rmdir('dirname') | 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname |
os.removedirs('dirname1') | 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 |
os.listdir('dirname') | 列出指定目录下的所有文件和子目录,包括隐藏文件并以列表方式打印 |
os.remove() | 删除一个文件 |
os.rename("oldname","newname") | 重命名文件/目录 |
os.path.abspath(path) | 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 |
os.path.dirname(path) | 返回path的目录 |
os.path.exists(path) | 如果path存在,返回True;如果path不存在,返回False |
os.path.isabs(path) | 如果path是绝对路径,返回True |
os.path.isfile(path) | 如果path是一个存在的文件,返回True。否则返回False |
os.path.isdir(path) | 如果path是一个存在的目录,则返回True。否则返回False |
os.path.join(path1[,path2[, ...]]) | 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 |
os.path.getatime(path) | 返回path所指向的文件或者目录的最后访问时间 |
os.path.getmtime(path) | 返回path所指向的文件或者目录的最后修改时间 |
os.path.getsize(path) | 返回path的大小 |
os.getcwd() | 获取当前工作目录,即当前python脚本工作的目录路径 |
os.chdir("dirname") | 改变当前脚本工作目录;相当于shell下cd |
os.curdir | 返回当前目录: ('.') |
os.pardir | 获取当前目录的父目录字符串名:('..') |
os.stat('path/filename') | 获取文件/目录信息 |
代码
import os #print(os.getcwd())#获取当前目录 D:\axc\Python\PythonTemp #print(os.chdir(r"C:\\Users\\wangyujun\\Desktop"))#切换进入到哪个目录下 #print(os.getcwd()) #print(os.getcwd()) #os.rename('本文件.py','test.py')#os.rename(old,new)将old文件重命名为new #os.remove('test.py')#删除文件 #os.mkdir('dis')#创建单级空文件夹,目录 #os.rmdir('dis')#删除单级空目录 #os.makedirs('dis\\b')#创建多层递归目录 #os.removedirs('dis\\b')#只能删除空的文件夹 #print(os.listdir('dis'))#列出指定目录下的所有文件及文件夹,包括隐藏文件,并返回一个list #os.system('ipconfig')#可以直接操作系统命令,os.system(command) """ res=os.popen('ipconfig').read()#执行操作系统命令 print(res) """
import o