python 一入深似海 模块,包与库训练(二)


接下来,来看个时间机器和怎末调用别的机器

三、 Python中的时间模块

1.机器人:时间戳

# *** 1. 获取当前系统的时间戳
res = time.time()
#1574905882.6581771 表示从1970年1月1日0时0分0秒到现在的一个秒数,目前可以计算到2038年

# 2. 获取当前系统时间,时间字符串
res = time.ctime()
# Thu Nov 28 09:54:08 2019  

# 3. 获取当前系统时间, 时间元组
res = time.localtime()
# time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=9, tm_min=55, tm_sec=32, tm_wday=3, tm_yday=332, tm_isdst=0)
# 4. 以上时间字符串和时间元组可以通过指定的时间戳来获取
t = 1564000082.6581771
res = time.ctime(t)
res = time.localtime(t)

2、转为我么们认识的

有两种方式

①使用localtime方法获取的时间元组,格式化成为 xxxx年xx月xx日 时:分:秒 星期几

res = time.localtime()
print(f'{res.tm_year}年{res.tm_mon}月{res.tm_mday}日 {res.tm_hour}:{res.tm_min}:{res.tm_sec} 星期{res.tm_wday+1}')

②strftime() 格式化时间 年-月-日 时:分:秒 星期几

res = time.strftime('%Y-%m-%d %H:%M:%S %w')

3、计算工作时间

res = time.perf_counter()

4、工作多了就睡觉:睡觉函数

sleep(秒) 在给定的秒数内暂停调用线程的执行。该参数可以是浮点数,以指示更精确的睡眠时间

 print(time.strftime('%Y-%m-%d %H:%M:%S %w'))
 time.sleep(3)
 print(time.strftime('%Y-%m-%d %H:%M:%S %w'))

四、日历模块

不太常用,可以模拟实际日历练练

import  calendar

# 返回指定年份和月份的数据,月份的第一天是周几,和月份中的天数。
# calendar.monthrange(年,月)
def showdate(year,month):
    res = calendar.monthrange(year,month)
    days = res[1] # 当前月份的天数
    w = res[0]+1 # 当前月份第一天周几信息
    print(f'====={year}年{month}月的日历信息=====')
    print(' 一   二  三  四   五  六  日 ')
    print('*'*28)
    # 实现日历信息的输出
    d = 1
    while d <= days:
        # 循环周
        for i in range(1,8):
            # 判断是否输出
            if d > days or (i < w and d == 1):
                print(' '*4,end="")
            else:
                print(' {:0>2d} '.format(d),end="")
                d+=1
        print()
    print('*'*28)

showdate(2020,7)

五、Python中的模块与包

模块

定义的一个python的文件,后缀名为.py。这个文件被称为模块。

模块中通常会定义一些相似的 类,函数等代码内容,提供给别的程序引入后使用。

系统模块

系统模块就是一个python的程序脚本,专门提供给我们自己的程序使用。它们是在安装好python环境时,就已经存在的,需要的时候可以使用 import 导入到程序中使用。
import logging,json,time。。。。

自定义模块

就是自己创建一个python脚本,定义一些类或方法,供别的脚本导入后使用。

例如定义一个My.py的文件如下

# My.py

# 定义类
class MyException():
    pass

# 定义函数
def func():
    print('我是一个模块中的func函数')
    
# 定义变量
love = 'iloveyou'

再定义一个python脚本{main.py}就可以引入上面的文件作为模块使用。

# main.py 在当前脚本中如果需要使用一些已经定义好的功能时,可以选择对应的模块,导入后使用

# 使用系统模块 time
import time
print(time.time())

# 使用自定义异常处理 模块
import My

# 使用模块中定义的类
obj = My.MyException()
print(obj)==> None

# 使用模块中的函数
My.func()==>'我是一个模块中的func函数'

# 使用模块中定义的变量
print(My.love)==>'iloveyou'

# 想使用模块中的内容时,除了导入模块,还可以在在指定模块中导入指定的内容
from My import love  # 导入My模块中的love变量
from My import love as lv # 导入My模块中的love变量,起个别名
print(love)==>'iloveyou'
print(lv)==>'iloveyou'

模块中的测试代码

# 自定义模块中,通常只是去定义类或函数,变量,等,并不调用
# 如果在自定义模块中,想要写一些测试代码,在当前模块作为主程序使用时执行,
# 而作为模块被别的程序导入时不执行,那么可以把测试代码写到 下面代码块中
if __name__ == '__main__':
    print('这个位置写的代码只有当前脚本被直接运行时触发')
    
# 特殊的变量 __name__
# __name__ 这个变量,在当前脚本作为模块被别的程序导入是 __name__的值 是当前这个模块的名称
#在当前脚本被作为主程序直接由python解析运行时,__name__的值 是 '__main__'
name = __name__
print(name)

包可以理解为是一个文件夹,里面包含了多个python文件。

包的结构:

package/   # 包(文件夹)
├── __init__.py  # 包中的初始化文件
├── a.py         # 包中的模块
├── b.py
└── ps/   # 子包
  ├── __init__.py
  ├── c.py
  └── d.py

包的使用方法

# 1. 直接把包当作模块导入,可以用的内容是 __init__.py文件中定义的
# 不推荐这种用法
import package
package.funcpa()

#2。 可以导入模块中的所有内容
# 注意这个内容是由 __init__.py文件中定义的 __all__ 这个变量指定的模块
# 好处是可以直接导入指定的所以模块,并且使用时,直接使用指定的模块名即可
from package import  *
a.funca()
b.funcb()

# 3。 导入指定包中的指定模块
from package import a
a.funca()

# 4。从指定包的指定模块中导入指定的内容
from package.b import funcb
funcb()

# 5。从指定包的子包中导入模块
from package.ps import c
c.funcc()

# 6。 从指定包的子包的指定模块中导入指定内容
from package.ps.d import funcd
funcd()

导入方式的分类

绝对导入
# 绝对导入的方式会使用[搜索路径]去查找和导入指定的包或模块
import 模块
importimport 包.模块
from 模块 import 内容
from 包 import 模块
from 包.模块 import 内容
相对导入

注意:相对导入只能在非主程序的模块中使用,不需要直接运行的模块文件

# 相对导入 
from .包名/模块名 import 模块/内容
from ..包名/模块名 import 模块/内容

. 代表当前
..代表上一级

单入口程序

单入口程序是指整个程序都是经过一个主程序文件在运行,其它程序都封装成了包或模块

单入口文件是作为程序直接被运行的唯一文件,其它都是作为模块或包,被导入单入口中去执行

main是程序的主入口文件,会被直接作为主程序运行,所以main.py文件中必须使用 绝对导入 方式

六、Python中的第三方库的管理

第三方库的管理

python中比较牛逼的地方就是由大量的第三方库提供给你使用。

如何安装第三方库

pip

pip就是python的包管理工具,解决了包直接的依赖关系。可以方便的管理第三方库(包).
类似于PHP中Composer,或者Nodejs中的npm,或者Linux中的yum。

如何使用pi

pip install 包名(库名)

注意:如果有多个python环境的情况下,可能需要使用pip3

例如安装pymysql这个库

pip install pymysql

安装指定版本的包

pip install 包名==版本

搜索已经安装的包

pip show 包名

查看安装的所有包

pip list 

更换pip的镜像源

因为很多库由外国网站提供,网速被限制,下载很慢。所以要更换成国内安装源

PIP 更换国内安装源

pip国内的一些镜像
  阿里云 http://mirrors.aliyun.com/pypi/simple/ 
  中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 
  豆瓣(douban) http://pypi.douban.com/simple/ 
  清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 
  中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

修改源方法:

临时使用: 
可以在使用pip的时候在后面加上-i参数,指定pip源 
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

永久修改: 
linux: 
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:

[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn


windows: 
直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,在pip 目录下新建文件pip.ini,内容如下

或者按照网友的建议:win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下

 
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

网上同样有很多教程,跟着替换就可以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值