Python学习笔记 Day 5

本文详细介绍了Python的模块系统,包括模块的定义、导入方式和import的本质。重点探讨了标准库中的time、datetime、random、os、shutil、json、pickle、shelve、xml、PyYAML、ConfigParser、hashlib和re模块,提供了相关示例和使用方法。同时,提到了开源模块和自定义模块的学习方向。
摘要由CSDN通过智能技术生成

模块

定义

模块:用来从逻辑上组织Pthon代码(变量,函数,类,逻辑,实现一个功能),本质是.py结尾的Python文件
包(package):本质是一个目录(必须带有一个__init__.py文件)

导入方法

import sys ,os,module_test_1
#导入单多个
from module_test_1 import *
#引入模块下全部代码,
#当后部有冲突的函数时,import内的旧函数的地址会被新的覆盖
from module_test_1 import logger() as a
a.longger()#如此可以避免楼上的情况
from folder import module
#从???路径引入模块

在这里插入图片描述

import本质

实质是把,py文件解释了一遍,导入包(package)实质是执行包里的__init__.py的文件
import module_name---->module.py----->module.py的路径----->sys.path----->当Import的.py文件不在当前文件的系统路径,要用sys.path.append()加进当前文件路径到系统路径。
import 包时,因为只引入__init__.py文件,故要用在包内其他的.py文件模块,要在__init__.py要import 上,然后在其他地方可用“包名.模块名.函数名”引用

a=os.path.dirname(os.path.abspath(""))
sys.path.append(a)
import module
#实质:把模块的代码解释了一遍,并把结果给了模块名变量,module=all code;
from module_test_1 import name
#导入的是一个函数或变量,使用时不用加引子module_test_1
print name#直接使用

在这里插入图片描述

导入优化

from module import test
#此种方法可以不用每次都从路径找,当多处引用时,可以加快运行

模块分类

A:标准库

  1. time,datetime,random,os,sys

(1)、time

时间格式有:
时间戳,元组(Tuple),格式化字符串
附上格式化字符串的代码

    %Y  Year with century as a decimal number.
    %m  Month as a decimal number [01,12].
    %d  Day of the month as a decimal number [01,31].
    %H  Hour (24-hour clock) as a decimal number [00,23].
    %M  Minute as a decimal number [00,59].
    %S  Second as a decimal number [00,61].
    %z  Time zone offset from UTC.
    %a  Locale's abbreviated weekday name.
    %A  Locale's full weekday name.
    %b  Locale's abbreviated month name.
    %B  Locale's full month name.
    %c  Locale's appropriate date and time representation.
    %I  Hour (12-hour clock) as a decimal number [01,12].
    %p  Locale's equivalent of either AM or PM.
import time ,datetime
print (time.time())#时间戳,(1970纪元后经过的浮点秒数)
print (time.localtime())#当前时间
print (time.timezone)#当前地区的时间戳(中国,东八区,UTC+8)
time.sleep(3)#睡眠几秒
time.gmtime(1582723967)
#把时间戳换元组形式,0时区的,无参数默认0时区当前时间戳
#strftime("格式","元组,即struct_time")--->格式化的字符串
#strptime("格式化的字符串","一一对应的格式")--->元组

运行如下:

1582723967.062141
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26, 
tm_hour=21, tm_min=32, tm_sec=47, tm_wday=2, tm_yday=57,
 tm_isdst=0)
 #tm_wday=2,一周中的第几天(MON=0),tm_yday=57,一年中的第几天,tm_isdst=0,是否为夏令时
-28800 
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=32, tm_sec=47, tm_wday=2, tm_yday=57, tm_isdst=0)

运用:

import time ,datetime
x=time.localtime(1582723967)#时间戳转元组,还有gmtime()。
print(x.tm_year)
m=time.mktime(x)#元组转格式化的字符串
print (m)
j=time.strftime("%Y...%m=%d:%H-%M-%S",time.localtime())
#元组转格式化的字符串,%?后对应找后边的数据
print(j)
k=time.strptime("2020...02=26:22-23-29","%Y...%m=%d:%H-%M-%S")
#格式化的字符串转元组
print(k)
b=time.asctime(time.gmtime(1823456789))
#时间元组转格式化字符串
c=time.ctime(1823456789)
#时间戳转格式化字符串
print(b)
print(c)

运行如下:

2020
1582723967.0
2020...02=26:22-43-10
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26, tm_hour=22, tm_min=23, tm_sec=29, tm_wday=2, tm_yday=57, tm_isdst=-1)
Wed Oct 13 19:46:29 2027
Thu Oct 14 03:46:29 2027

在这里插入图片描述
在这里插入图片描述

(2)、datetime

是Time的高级封装

a=datetime.datetime.now()+datetime.timedelta(3)
#当前时期前几天
print(a)
b=datetime.datetime.now()+datetime.timedelta(-3)
#当前时期后几天
print(b)
c=datetime.datetime.now()+datetime.timedelta(hours=-3)
#当前时间往前/后几小时,分,秒
print(c)

运行如下 :

2020-03-01 14:09:37.709680
2020-02-24 14:09:37.709680
2020-02-27 11:09:37.709680

(3)、random

使用方法:

import time ,datetime,random
print (random.random())
#打印随机值
print(random.randint(1,3))
#打印随机1-3值,有3,不同Range(3),这个无3
print(random.randrange(0,3))
#打印随机1-3值,有3,不同Range(3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尖枫508

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值