Python包和模块
当使用Python编程时,包(Packages)和模块(Modules)是两个关键的概念,它们有助于组织、管理和复用代码。
模块(Modules)
什么是模块
一个.py 文件就是一个模块
模块是含有一系列**数据**,**函数**,**类**等的程序
-
-
-
-
- 作用
- 把相关功能的函数等放在一起有利于管理,有利于多人合作开发
- 模块的分类
- 1. 内置模块(在python3 程序内部,可以直接使用)
- 2. 标准库模块(在python3 安装完后就可以使用的 )
- 3. 第三方模块(需要下载安装后才能使用)
- 4. 自定义模块(用户自己编写)
- 模块名如果要给别的程序导入,则模块名必须是 标识符
- 作用
-
-
-
导入模块
语法
-
-
-
-
- import 模块名 [as 模块新名字1]
- 导入一个模块到当前程序
- from 模块名 import 模块属性名 [as 属性新名]
- 导入一个模块内部的部分属性到当前程序
- from 模块名 import *
- 导入一个模块内部的全部属性到当前程序
- import 模块名 [as 模块新名字1]
-
-
-
模块的内部属性
-
-
-
-
- __file__ 绑定模块的路径
- __name__ 绑定模块的名称
- 如果是主模块(首先启动的模块)则绑定 '__main__'
- 如果不是主模块则 绑定 xxx.py 中的 xxx 这个模块名
- 模块的 `__name__` 属性
- 每个.py 模块文件都会有 `__name__` 属性
- 1. 当一个模块是最先运行的模块,则这个模块是主模块, 主模块的`__name__` 属性绑定`'__main__'` 字符串
- 2. 如果一个模块是用 三种 import 语句中的一个导入的模块,则此模块不是主模块。
- 不是主模块的模块的 `__name__` 绑定的 模块名
- **主模块 (`__name__` == `'__main__'`)**: 当一个模块是直接运行的,即不是通过 `import` 语句导入的,那么它的 `__name__` 属性会被赋值为 `'__main__'`。
- **被导入的模块 (`__name__` == 模块名)**: 当一个模块被导入到另一个模块中时,它的 `__name__` 属性会被赋值为它的模块名
-
-
-
python 的第三方模块
-
-
-
-
- https://pypi.org/
- 使用导入的模块中的函数、变量等,可以通过模块名或从语句中导入的名称来访问。
-
-
-
Python 常用的内建模块
random 模块
-
-
-
-
- random 模块
- import random
-
-
-
time 模块
-
-
-
-
- 时间戳:从 1970年1月1日 0:0:0 UTC 时间 开始计时到现在的秒数
- UTC 时间 : 世界协调时间
- struct_time 用 含有9个元素的元组来表示时间
-
>>> import time >>> time.time() # 返回当前时间的时间戳 1617117219.0382686 >>> time.ctime() #返回当前的UTC 时间的字符串 'Tue Mar 30 23:14:48 2021' >>> t1 = time.localtime() # 返回当前的本地时间元组 >>> t1 time.struct_time(tm_year=2021, tm_mon=3, tm_mday=30, tm_hour=23, tm_min=18, tm_sec=22, tm_wday=1, tm_yday=89, tm_isdst=0) >>> t1.tm_year 2021 >>> t1.tm_yday 89 >>> time.sleep(3) # time.sleep(n) # 让程序睡眠 n 秒 >>> time.strftime("%Y-%m-%d", t1) # 格式化时间 '2021-03-30' >>> time.strftime("%y-%m-%d", t1) '21-03-30' >>> time.strftime('%Y-%m-%d %H:%M:%S', t1) '2021-07-21 17:37:41' # 用时间元组来创建一个自定义的时间 >>> t2 = time.struct_time ( (2021,1, 1, 10, 11, 20, 0, 0, 0) )
-
-
-
datetime模块
-
-
-
-
-
>>> import datetime >>> d1 = datetime.datetime.now() # 返回当前的时间 >>> d1 datetime.datetime(2021, 3, 30, 23, 32, 7, 342559) >>> d1.year 2021 >>> d1.year, d1.month, d1.day, d1.hour, d1.minute, d1.second, d1.microsecond # 用 datetime 的各个属性可以得到 具体的信息 (2021, 3, 30, 23, 32, 44, 757673) >>> d1.strftime("%Y-%m-%d") '2021-03-30' ## 计算时间差 >>> delta_time = datetime.timedelta(days=2, hours=1) # 生成 2天1小时后的时间差 >>> delta_time datetime.timedelta(2, 3600) >>> t1 = datetime.datetime.now() # 得到当前时间 >>> t1 datetime.datetime(2021, 3, 30, 23, 39, 26, 863109) >>> t1 + delta_time # 计算 未来时间 datetime.datetime(2021, 4, 2, 0, 39, 26, 863109)
-
-
-
-
os模块
-
-
-
-
- OS
- `os`模块是Python标准库中的一部分,提供了一种与[操作系统](https://so.youkuaiyun.com/so/search?q=操作系统&spm=1001.2101.3001.7020)进行交互的方法。主要功能包括文件和目录的操作、路径处理、进程管理等。在使用`os`模块之前,我们需要先导入它:
- importos
- OS
-
-
-
-
-
-
-
- os.path模块
- `os.path`模块是Python标准库的一部分,专门用于处理文件和目录路径的操作。它提供了一系列函数,用于操作和处理文件路径,使得路径操作更加方便和跨平台。
- os.path模块
-
-
-