1. sys模块
sys
模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数。
常用函数及变量如下:
-
sys.argv
:获取当前正在执行的命令行参数的参数列表,参数通过空格符分割。import sys print(sys.argv) # 执行python demo.py test test1 #======output===== ['demo.py', 'test', 'test1']
-
sys.version
:获取python
解释程序版本信息 -
sys.paltform
:获取当前执行环境的平台。 -
sys.path
:获取python
搜索模块的路径列表。 -
sys.modules
:返回已经加载到内存的模块,而并不是已经导入的模块。在程序import
一个模块时,会先在这个字典中查找是否已经加载了此模块,如果已经加载了,则只将模块的名字加入程序的Local
命名空间中,如果没有加载,则需要在sys.path
目录中按照模块名称查找模块文件,找到后将其加载到内存中,并加入sys.modules
中,并将名字导入到当前的Local
命名空间中。 -
sys.stdin、sys.stdout、sys.stderr
:分别表示标准输入、标准输出、错误输出。- 标准输入,一般为键盘输入,
stdin
对象为解释器提供输入字符流。可以通过sys.stdin.readline()、sys.stdin.read()、sys.stdin.readlines()
等来进行输入。在使用sys.stdin.readlines()
读取数据的时候,如果要结束读取,要使用Ctrl+D+Enter
来结束读取,在windows
下要使用Ctrl+Z+Enter
来结束读取,如果在Pycharm
下运行,同样要使用Ctrl+D+Enter
来结束读取。 - 标准输出,一般为屏幕输出。可以通过
sys.stdout.write()
来输出,其中还有一个缓冲区刷新的方法sys.stdout.flush()
,通过它可以将缓冲区内的数据全部写到终端上。 - 错误输出,一般是错误信息,例如当抛出一个异常时,会通过
sys.stderr
输出。
- 标准输入,一般为键盘输入,
-
sys.exit(n)
:退出程序,正常退出时exit(0)。 -
sys.executable
:该属性返回Python
解释器在磁盘上的存储路径。 -
sys.getfilesystemencoding()
:返回当前系统中保存文件用的字符集。 -
sys.maxsize
:最大的int
值。 -
sys.getrecursionlimit()
:返回最大的递归层数。 -
sys.setrecursionlimit(n)
:设置最大的递归层数。 -
sys.getdefaultencoding()
:获取系统当前编码。 -
sys.setdefaultencoding()
:设置系统默认编码。
使用sys
模块模拟进度条
import sys
import time
def progress(percent, width=50):
assert percent <= 100, "The parameter 'percent' cannot be greater than 100!"
show_str = ('[%%-%ds]' % width) % (int(width * percent / 100) * "#")
print("\r%s %d%%" % (show_str, percent), end='' if percent < 100 else '\n', file=sys.stdout, flush=True)
for i in range(100):
progress(i+1)
time.sleep(0.1)
# 代码中使用的嵌套的%,将其拆解开就可以知道其产生的原理。其中\r是回到整行的开头,这样使其一直在同一行显示了。
2. os模块
os
模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。
常用的函数及变量如下:
-
os.sep
:获取操作系统的路径分隔符。 -
os.name
:获取当前执行代码的平台。 -
os.linesep
:获取当前平台的行终止符,Windows
下使用\r\n
,Linux
下使用\n
,Mac
中使用\r
。 -
os.curdir
:返回的是表示当前目录的符号,永远返回.
,os.pardir
返回上级目录的符号,永远返回.
。 -
os.getcwd()
:返回当前工作目录。 -
os.getenv()
:获取指定的环境变量,如,os.getenv('path')
。 -
os.putenv()
:设置环境变量。 -
os.listdir()
:返回指定目录下所有文件和目录名。 -
os.mkdir()
:创建一个目录,只能创建一个目录,不能创建多层。 -
os.rmdir()
:删除一个空目录,如果目录不为空则不能删除。 -
os.mkdirs()
:可以递归创建目录。如果目录全部存在,则创建失败,抛出异常。 -
os.removedirs()
:可以删除多层递归的空目录,如果目录中有文件则无法删除。 -
os.chdir()
:改变当前工作目录到指定的目录。 -
os.renname()
:重命名目录名或者文件名。重命名后的文件名存在则重命名失效。 -
os.remove()
:删除文件。 -
os.stat()
:获取文件的属性。 -
os.system()
:执行shell
命令。 -
os.exit()
:终止当前进程。 -
os.path.sep
:返回路径分隔符。 -
os.path.curdir
和os.path.pardir
:与os.cudir
和os.pardir
相同。 -
os.path.split()
:将一个路径拆分成目录名和文件名两部分。 -
os.path.splitext()
:将一个路径拆分成文件名和扩展名,文件名中会包含路径。 -
os.path.isdir()
:判断一个路径是否为目录,不存在则返回False
。 -
os.path.isfile()
:判断一个路径是否为文件,不存在则返回False
。 -
os.path.isabs()
:判断是否为绝对路径,只判断格式,不判断是否存在。 -
os.path.exists()
:判断文件或目录是否存在。 -
os.path.getsize()
:获取指定文件的大小,如果传入的是目录则返回0。 -
os.path.getatime(), os.path.getmtime(), os.path.getctime()
:分别返回最近访问该文件的时间,最近修改文件的时间和文件的创建时间的时间戳。 -
os.path.abspath()
:获取指定文件的绝对路径。 -
os.path.basename()
:返回文件的文件名。 -
os.path.dirname()
:返回文件的目录名。 -
os.path.join()
:连接目录名和文件名或其他路径名。 -
os.path.normpath()
:规范路径,将路径中的斜杠或反斜杠统一。 -
os.walk()
:是一个目录遍历器,可以遍历一个目录下的所有文件和目录。可以按如下方式遍历。import os root_path = '' for (root, dirs, files) in os.walk(root_path): print(root, dirs, files)
如有错误欢迎批评指正!!!