模块

模块分为三种:1,python标准库(内置模块)。 2,第三方模块     3,应用程序自定义模块

-自定义模块

import

用import时会先把文件中的命令都执行一边,然后执行需要执行的函数命令。

-执行对应文件

-引入变量名

-import 运行时只能找到当前操作执行文件所在目录

 

例如:在同一个目录(同级目录)下新建一个test.py 和cal.py文件 cal.py内容如下,需要在test.py文件中引入cal.py函数并运用

def add(x,y):
return x+y

def sub(x,y):
return x-y

代码如下:

-代码1:

import cal
print(cal.add(5,3))======>结果是:8
print(cal.sub(5,3))======》结果是:2

-代码2:

from cal import add,sub
print(add(5,3))=====》结果是:8
print(sub(5,3))=====〉结果是:2

例如:*在不同目录下新建一个test.py 和cal.py文件 cal.py内容如下,需要在test.py文件中引入cal.py函数并运用

test.py文件在 day21 lessons文件下而cal.py在 day21 lessons-new-cal.py

def add(x,y):
return x+y

def sub(x,y):
return x-y

代码是:

from new import cal
print(cal.add(5,3))====>结果是8

*不同目录下 例如:new 目录下有2个包(web1, my_module) new--web1--test.py  new--my_module-cal.py-功能

现在想在test.py中调用cal.py中的一个功能

import sys,os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#代码中的os.path.abdpath(__file__) 代表当前文件的绝对路径
#代码中的os.path.dirname()代表上一级路径
sys.path.append(BASE_DIR)

from my_module import cal


if __name__=='__main__':
print(cal.add(3,5))===》结果是8

 

*********************************************

目录 new包下有一个执行文件test.py 以及一个web1 包(web1-web2-web3-cal.py) ,需要在test.py 中运行web3包中的cal.py文件

cal.py 文件内容是:

def add(x,y):
print(x+y)

代码如下:

-代码1

from web1.web2.web3 import cal
cal.add(3,5)===》结果是8

-代码2

from web1.web2.web3.cal import add
add(3,5)====结果是8

不可用代码:

from web1.web2 import web3=====》此代码相当于执行web3 包中的_init_.py

web3.cal.add() 代码会报错

           

if __name__ == '__main__' :下边写的执行代码是对上边所写代码进行测试。若别的文件引用此代码所在的文件中的功能,—__name__ 等于sys.path的执行结果,所以下边代码不会运行

if __name__ == '__main__':

  main run======>此代码代表程序

-python标准库模块

1,time 模块

-time.sleep() 延迟时间

-时间戳 time.time() :做计算

import time
print(time.time())====>1620632052.788367. 代表从1970年到现在一共多少秒

-结构化时间:

time.localtime()--当地时间

print(time.localtime())=====>time.struct_time(tm_year=2021, tm_mon=5, tm_mday=10, tm_hour=15, tm_min=38, tm_sec=23, tm_wday=0, tm_yday=130, tm_isdst=0)
t=time.localtime()
print(t.tm_year)====>结果是:2021 代码意思是:打印年份

time.gmtime()---世界标准时间

print(time.gmtime())====time.struct_time(tm_year=2021, tm_mon=5, tm_mday=10, tm_hour=7, tm_min=47, tm_sec=49, tm_wday=0, tm_yday=130, tm_isdst=0)

-将结构化时间转换成时间戳 time.mktime()

print(time.mktime(time.localtime()))=====>1620633262.0

- 将结构化时间转换为格式化的字符串时间 代码:time.strftime(x,t) x代表格式化的字符串时间 ,t 默认 time.localtime()

%Y代表年。

%m代表月

%d代表日

%X代表时分秒

print(time.strftime('%Y-%m-%d %X'))====>2021-05-10 16:01:28

- 将格式化的字符串时间 转换成 结构化时间代码:time.strptime() 

print(time.strptime('2012:5:10:12:30:05','%Y:%m:%d:%X'))==>time.struct_time(tm_year=2012, tm_mon=5, tm_mday=10, tm_hour=12, tm_min=30, tm_sec=5, tm_wday=3, tm_yday=131, tm_isdst=-1)

-asctime 是将结构化时间转换为字符串时间 有固定格式

import time
print(time.asctime())===>Mon May 10 16:19:14 2021

-ctime 是将时间戳转化为字符串时间 有固定格式

import time
print(time.ctime())====>Mon May 10 16:19:14 2021

-datetime

import datetime
print(datetime.datetime.now())=====>2021-05-10 16:23:25.260349

2,random 模块 随机模块

-random.random()     0-1范围内 浮点类型

import random
print(random.random())====0.9317954898962848

-random.ranint(1,3) #[1,3] 整型 范围是大于等于1,小于等于3整数

print(random.randint(1,3))==结构是1-3内随机数字

-random.randrange(1,3) #[1,3) 范围是:大于等于1,小于3的整数

print(random.randrange(1,3))

-random.choice() 随机选取其中一个元素

print(random.choice([11,22,33]))===》结果是随机出现列表中随机元素

-random.sample(x,y) x代表可迭代对象,y 代表一次出现几个元素

import random
print(random.sample([11,22,33],1))==》[22] 出现一个元素
import random
print(random.sample([11,22,33],2))===》[11,33]出现2个元素

-random.uniform() 任意范围内的浮点型

import random
print(random.uniform(1,3))====此代码是表示随机取1-3范围内的浮点型

-random.shuffle() 改变可迭代对象元素顺序

import random
ret = [1,2,5,6]
random.shuffle(ret)
print(ret)===》[5, 1, 2, 6]

随机验证码 代码如下:

import random
def v_code():
ret = ''
for i in range(5):=====此处代表范围是0,1,2,3,4 即[0,5)
num = random.randint(0,9)
alf = chr(random.randint(65,122))
s =str(random.choice([num,alf]))
ret += s
return ret
print(v_code())====》结果是个5位数的随机码

临时修改系统环境变量,代码如下:

import sys

sys.path.append()

 

3,sys 模块

4,json &pickle 模块

5,os 模块

-os.getcwd 直接获取当前工作目录

import os
print(os.getcwd())=====>结果是:/Users/chen/PycharmProjects/学习/com/wang

-os.chdir()改变当前目录.      os.chdir(.) 当前目录

-os.chdir(‘..‘) 返回上一层

-os.makedirs('dirname1/dirname2')可

 

 

 


-remove

 

 

 

 

 

 

 * logging 模块

*re 模块

 

上一篇:python的time模块


下一篇:获取当前时间的三个函数:time(),ctime(),gmtime()