:我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。
为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。
模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
:想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:import module1[, module2[,… moduleN] 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:
>>> import sys >>> sys.path ['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages'] >>>一、time模块 import time
#time.sleep(5) print(“睡眠5s”) #sleep() #线程推迟自定的时间运行,单位为秒
#clock() #这个需要注意啦,在不同的系统上含义不同,在unix系统上,它返回的是’进程时间’,用秒表示的浮点数(时间戳) #在windows中,第一次调用,返回的是进程运行的实际时间,而第二次之后的调用是自第一次调用后到现在的运行 #的时间,即两次的时间差
#返回当前时间的时间戳(以秒计算,从1970年1月1日00:00:00开始到现在的时间差)
>>> import time print(time.time()) 1603328975.3990748import datetime
#显示当前时间日期
>>> import datetime >>> s = datetime.datetime.now() >>> s datetime.datetime(2020, 10, 22, 9, 1, 4, 555640) #时间戳直接转换为日期格式
>>> import datetime >>> print(datetime.date.fromtimestamp(time.time())) 2020-10-22 >>>二、os模块 os模块是与操作系统交互的一个接口os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: (’.’) os.pardir 获取当前目录的父目录字符串名:(’…’) os.makedirs(‘dirname1/dirname2’) 可生成多层递归目录 os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir(‘dirname’) 生成单级目录;相当于shell中mkdir dirname os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir(‘dirname’) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename(“oldname”,“newname”) 重命名文件/目录 os.stat(‘path/filename’) 获取文件/目录信息 os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: os.name 输出字符串指示当前使用平台。win->‘nt’; Linux->‘posix’ os.system(“bash command”) 运行shell命令,直接显示 os.environ 获取系统环境变量 os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(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所指向的文件或者目录的最后修改时间#0,1之间时间生成的浮点数 float
>>> import random >>> print(random.random()) 0.9744326452117098#随机生成传入参数范围内的数字 即 1,2,3
>>> print(random.randint(2,3)) 3 >>> print(random.randint(2,3)) 3 >>> print(random.randint(2,3)) 3 #随机生成传入参数范围内的数字,range顾头不顾尾 print(random.randrange(1, 3))
#随机选择任意一个数字 print(random.choice([1, ‘23’, [4, 5]]))
#随机选择任意两个数字 print(random.sample([1, ‘23’, [4, 5]], 2))
三、sys 模块 sys |-- argv # 脚本传参 |-- exit() # 退出系统 |-- getdefaultencoding() # 获取系统的默认编码 |-- getfilesystemencoding() # 获取文件编码 |-- setrecursionlimit(num) # 设置递归的极限值 |-- getrecursionlimit() # 获取递归的极限值 |-- getrefcount() # 获取对象的引用计数
#获取Python解释程序的版本信息 >>> print(sys.version) 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]四、json模块
五、pickle模块
pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用pickle保存那些不重要的数据,不能成功地反序列化也没关系##----------------------------序列化 import pickle
dic = {“name”: “rxz”,“age”: 29,“sex”:“gils”}
print(type(dic))#<class ‘dict’>
j=pickle.dumps(dic) print(type(j))#<class ‘bytes’>
f=open(‘序列化对象_pickle’,‘wb’)#注意是w是写入str,wb是写入bytes,j是’bytes’ f.write(j) #-------------------等价于pickle.dump(dic,f)
f.close() #-------------------------反序列化 import pickle f=open(‘序列化对象_pickle’,‘rb’)
data=pickle.loads(f.read())# 等价于data=pickle.load(f)
print(data[‘age’])