1、导入模块
python通过模块调用是自身更为强大,模块是程序的封装。一个python就是一个模块。
在模块中可定义函数\类和变量,可以包含任何可执行的代码
#建立一个mod.py文件,和当前文件放在同一个目录下,内容如下:
def eat():
print("我是mod模块里的 吃秋刀鱼啊")
#-------------------另一个.py文件---------------------------
import mod #----引用模块 调用时,指定模块名
mod.eat() #我是mod模块里的 吃秋刀鱼啊
import mod as m #----使用别名的方式引用模块
m.eat() #我是mod模块里的 吃秋刀鱼啊
'''
引用文件要和mod.py文件放在同意目录下.
import导入模块去,只需要写一次,不管写多少次,也只会导入一次'''
from mod import eat #引入模块中的某方法,调用时就可以不带模块名了
eat() #输出:我是mod模块里的 吃秋刀鱼啊
from mod import *
eat() #使用* 引用模块下的所有方法
2、入口文件
python程序文件可以是模块,也可以是可执行程序.
##定义一个python.py文件如下
def fuc(a,b):
c=a+b
print(c)
if __name__=="__main_":
print("可执行程序")
func(1,2)
#--------文件以【程序方式】运行时,在【命令行执行窗口】输入命令如下----执行"__main_":后的代码---
# Python python.py #输出:可执行程序 3
#------------文件以【模块】的方式被调用时--------不会执行"__main_":后的代码------------------
from python import *
fuc(1,3) #输出4
3、包
- 由多个模块组成,就是由多个python文件组成。
- 包就是文件夹.但是在该文件夹下必须有 __init__.py文件,这个文件可以是空的.
- 有了这个文件,python会认为这个文件夹是一个包. 没有这个文件,导入的时候也不会报错.
引用package里的文件mod.py::
import package.mod as m
m.func() #引用方法
4、常用模块
- python中有内置模块:os\sys\time\datetime\random
- import math;
help(math); #查看当前模块下的所有方法
1、os模块
#os 模块: os是小写.对操作系统的操作,支持跨平台
import os
print(os.getcwd()) #用于获取当前的工作目录
print(os.listdir("D:\AE")) #获取指定目录下的所有文件和文件夹
#输出:['Adobe After Effects 2021']
# os.mkdir("new") #在当前目录下新建名为new的文件夹
# os.makedirs(r"D:\AE\new") #在目录下递归新建文件夹
# os.rmdir("new") #删除当前目录下名为"new"的文件夹,new文件夹下必须为空,否则会报错.
#也可以指定一个路径名D:\AE\new
# os.remove(r"D:\AE\1.html") #用于删除文件 删除目标不存在时会报错
# os.removedirs(r"D:\AE\aa") #删除D下的aa文件夹和AE文件夹,即删除全部路径的文件夹,
#文件夹内必须为空
# os.rename("D:\AE\aa","newName") #重命名文件夹或文件
# os.getenv("PATH") # 获取系统环境变量
# os.putenv("PATH","D:\NEW") #添加环境变量.此环境变量是临时的,只对当前脚本有效
# size = os.path.getsize("D:\AE\aa\2.txt") #返回文件大小,单位为字节
# r= os.path.exists("D:\AE\aa\2.txt") #判断文件是否存在
# a = os.path.isdir("D:\AE\aa\2.txt") #返回false 判断指定信息是否为目录
# b = os.path.isdir("D:\AE\aa") #返回true
# isFile = os.path.isfile("D:\AE\aa\2.txt") #true 判断指定信息是否为文件
2、sys模块
# sys模块 : 提供了对一些变量的访问 及与解释器交互的一些函数
import sys
print(sys.argv) #sys.argv是一个列表.包含了脚本传递的命令行参数.第一个元素是程序本身的路径
# 输出:['C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python311\...
print(sys.hexversion) #pathon解释程序的版本值 输出:51054064
print(sys.exc_info) #程序异常模块中调用.以元组的形式返回异常信息
sys.exit(0) #用于退出python,并引发一个异常
print(sys.modules) #用于返回系统导入的模块字段
print(sys.path) #用于返回模块的搜索路径
print(sys.modules.keys()) #用于返回所有导入模块的列表
print(sys.platform) #返回操作系统的名称
print(sys.version) #返回python的版本信息
print(sys.maxsize) #返回最大支持的长度
3、time模块
# time 模块 各种与时间相关的方法
import time
print(time.time()) #返回当前时间的时间戳 1695794027.678309
print(time.localtime()) #将时间戳 格式化为本地时间
print(time.gmtime()) #将时间戳 转化为UTC时区的时间
'''time.struct_time(tm_year=2023, tm_mon=9, tm_mday=27, tm_hour=5,
tm_min=53, tm_sec=47, tm_wday=2, tm_yday=270, tm_isdst=0)'''
print(time.mktime(time.localtime())) #将 struct_time 转化为时间戳 1695794027.0
time.sleep(3) #指定线程延迟3s执行
print(time.strftime("%Y-%m-%d %H :%M %S",time.localtime()))
#格式化输出时间2023-09-27 13 :53 50
<<日期格式化符号>>
%y 用两位数表示年份,00~99
%Y 用四位数表示年份,例如2021
%m 月份
%d 日
%H 小时(24h制)
%I 小时(12h制)
%M 分
%S 秒
%a 本地化简化星期
%A 本地化完整星期
%b 本地化简化月份
%B 本地化完整月份
%c 本地相应的 日期表示和时间表示
%j 年内的一天
%p AM与PM的等价符
%U 一年中的星期数,星期天为每个星期的开始
%w 星期
%W 一年中的星期数,星期一为每个星期的开始
%x 本地相应的日期
%X 本地相应的时间
%Z 当前时区
4、datetime模块
# datetime模块 : 用于处理日期和时间. 有两个常用类:datetime类和date类
import datetime
# 创建时区---
tz_utc = datetime.timezone(datetime.timedelta(hours=12))
print(datetime.datetime.now(tz_utc))#2023-09-27 18:07:59.637569+12:00 当前时区下本地时间
print(datetime.datetime.now())#2023-09-27 14:07:59.637569 不传时区参数的本地时间
print(datetime.datetime.today()) #2023-09-27 14:09:22.235366获取当天日期和时间,不可接受时区参数
print(datetime.date.today()) #获取当天日期 2023-09-27
#得到明天日期 2023-09-28
tomorrow = datetime.date.today()+datetime.timedelta(days=1)
#三天前当前时刻的时间 2023-09-24 14:17:05.090201
passday = datetime.datetime.now() - datetime.timedelta(days=3)
#今天的开始时间 2023-09-27 00:00:00
begintime = datetime.datetime.combine(datetime.date.today(),datetime.time.min)
#今天结束时间 2023-09-27 23:59:59.999999
endtime = datetime.datetime.combine(datetime.date.today(),datetime.time.max)
print(tomorrow,passday,begintime,endtime)
5、random模块
# random模块 :处理随机数
import random
print(random.random()) #生成一个随机数,取值范围 0~1
print(random.uniform(1,20)) # 生成一个指定范围内的随机数.数据类型为浮点型 取值范围1~20
print(random.randint(1,20)) # 生成一个指定范围内的随机数.数据类型为整型 取值范围1~20
list = [1,2,3,4,5,6,a]
print(random.choice(list)) #从指定序列中随机取出一个元素
print(random.sample(list,4))# 切片长度为4 输出:[6,3,1,2] 每次都不一样 [4, 6, 7, 1]
random.shuffle(list) #打乱列表 [1, 6, 3, 4, 7, 2, 5]
print(list)