第五章python标准库***进阶:SYS模块和OS模块

本文详细介绍了Python的Sys模块,包括其主要功能、常用方法和属性,如argv、exit、version等,并通过代码示例展示了如何使用。同时,文章还探讨了Os模块,列举了如mkdir、rmdir、listdir等方法,以及如何进行路径操作和文件管理。此外,还提到了glob模块用于文件模式匹配的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#Sys模块

定义

Sys模块主要负责与python解释器进行交互

常用方法

常用方法的查看

>>> import sys

>>> #要查看方法和属性

>>> 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

当前线程信息

代码

#argv 获取命令行的参数

import sys

#argv第一个参数必须是文件的信息/程序信息

print(sys.argv)

print(sys.argv[3])

"""

 argv 获取命令行的参数

 argv 的第一个参数/下标的是0的参数,一定会是我们运行文件的信息

"""

在cmd里面运行python,语法:python 文件名字 参数1 参数2

多个参数之间用空格隔开

"""

sys.exit()  0是正常退出,1是不正常退出,无论是不是1都不会报错

"""

for i in [1,2,3,4,5]:

    if i == 2:

        sys.exit(1)

    print(i) #1

#sys.version python版本号

print(sys.version) #3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]

#maxsize  int数值可以最大是263-1

print(sys.maxsize) #9223372036854775807

#path 获取路径,返回一个list

print(sys.path)

#sys.path.insert(index,文件名字) 添加路径

sys.path.insert(0,"temp")

print(sys.path)

#sys.path=[] 删除路径

# sys.modules  获取我们导入的模块信息,返回一个字典

#print(sys.modules)

#sys.modules.keys() 只获取导入模块的名字

#print(sys.modules.keys())

#导入模块不一定是内建模块,也有可能是我们自己封装的模块

# 获取内建模块的名字

a = sys.builtin_module_names

print(a)

练习

"""

 定义一个函数,传入一个名字,查看是否是内建模块名字

"""

#Os模块

定义

os是和操作系统(windows)进行交互的,提供了访问操作系统底层的接口

Sys模块主要负责与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 

#os.getcwd() 获取当前目录

#print(os.getcwd()) #D:\axc\Python\PythonTemp

"""

绝对路径/全路径:D:\axc\Python\PythonTemp\test.py

相对路径/半路经:Python\PythonTemp\test.py

想要写半路经,你的当前路径和D:\axc\Python\PythonTemp要一样

"""

#os.mkdir()  创建一个单级文件夹

#os.mkdir("D:\\axc\\Python\\PythonTemp\\temp")

#os.mkdir("temp")

#os.rmdir()  删除单级空文件夹

#os.rmdir("D:\\axc\\Python\\PythonTemp\\temp")

#os.rmdir("temp")

#os.makedirs() 创建多层文件夹

#os.makedirs("D:\\axc\\Python\\PythonTemp\\test\\2002bigdate")

#os.makedirs("test\\2002bigdate")

#os.removedirs()删除多级空目录

os.removedirs("test\\2002bigdate")

#创建一个文件夹test

#os.mkdir("test")

#在test里面创建一个文件temp.py(手动创建右键创建)

#修改文件名字temp为temp.txt

#os.rename("D:\\axc\\Python\\PythonTemp\\test\\temp.py","test\\temp.txt")

#列出test文件夹里面所有的子文件以及子文件夹

print(os.listdir("test")) #['temp.txt']  listdir只列出文件/文件夹名字

#删除test这个文件夹

os.remove("test\\temp.txt")

os.rmdir("test")

#os.path.dirname() 获取路径的父目录(上一级目录)

a = os.path.dirname("D:\\axc\\Python\\PythonTemp\\test.py")

#print(a) #D:\axc\Python\PythonTemp

#os.path.join() 将多个路径进行拼接

b = os.path.join("D:","python","p.py")

#print(b) #D:python\p.py

#os.path.split() 拆分,将文件和文件夹进行拆分.返回一个元组

c = os.path.split("D:\\axc\\Python\\PythonTemp\\test.py")

print(c) #('D:\\axc\\Python\\PythonTemp', 'test.py')

#os.path.exists() 判断文件/文件夹是否存在

os.path.isabs() #判断是否是绝对路径

os.path.isdir() #判断是否是文件夹

os.path.isfile()  #判断是否是文件

文件模式匹配:glob模块

import os

import glob

a = os.listdir("D:\\axc\\Python\\PythonTemp")

#print(a) #只显示文件/文件夹的名字

"""

['.pytest_cache', '.vscode', 'cat.py', 'ClearWindow.py', 'count.py', 'eval.py', 'f.txt', 

'foo.txt', 'out.log', 'sudo.py', 'test.py', '__pycache__', '其他文件.py']

"""

语法

#glob.glob() 进行模式匹配,返回一个迭代对象

for i in glob.glob("D:\\axc\\Python\\PythonTemp\\*.py"):

    print(i)

优点

"""

1.打印的是全路径

2.可以进行模式匹配

"""

"""

D:\axc\Python\PythonTemp\cat.py

D:\axc\Python\PythonTemp\ClearWindow.py

D:\axc\Python\PythonTemp\count.py

D:\axc\Python\PythonTemp\eval.py

D:\axc\Python\PythonTemp\sudo.py

D:\axc\Python\PythonTemp\test.py

D:\axc\Python\PythonTemp\其他文件.py

"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值