05 Python 模块

模块

Python中称模块,其他软件称类库

1.1 模块种类

  • 内置模块
  • 自定义模块
  • 第三方模块

1.2 使用方式

先导入,后使用

导入方式:import 模块名称

导入模块:

单模块:import

嵌套在文件夹下:from xxx import xxx

from xxx import xxx as ooo

示例:

# 导入模块

# 导入s4文件

import s4

# 导入lib目录下的commons
import lib.commons

# 调用模块

# 调用s4文件的login()模块
s4.login()

# 调用lib目录下commons文件的f1模块
lib.commons.f1()

# 导入s4文件内login模块
from s4 import login
loging()

# 导入s4文件内所有模块
from s4 import *  #导入s4内所有模块

别名设置:

# 导入lib目录下commons文件,设置别名 为lib_commons
from lib import commons as lib_commons

#导入src目录下commons文件,设置别名 为src_commons
from src import commons as src_commons

1.2.1.1    小结:

为什么要有模块:将代码归类

导入模块的依据:import

sys.path

模块名称的重要性:一定不要和内置模块重名

1.2.2 查看模块位置

D:\Python\Python_S13_35\day05   #当前路径
D:\Program Files\Python\Python35\python35.zip
D:\Program Files\Python\Python35\DLLs
D:\Program Files\Python\Python35\lib
D:\Program Files\Python\Python35
D:\Program Files\Python\Python35\lib\site-packages   #第三方模块路径

1.3 模块安装

  • pip3

    pip3 requests

  • 源码

    • 下载源码包
    • 解压
    • 进入解压路径
    • python3 setup.py install

1.3.1 windows8.1安装requests模块

python -m pip install requests #windows下执行

You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip‘ command.

1.4 常用模块

序列化相关

import json
import pickle

序列化解释:将python的基本数据类型转换成字符串形式

反序列化:将字符串转换成python的基本数据类型,要求内容必须符合基本数据类型特征

import json
dic = {‘k1‘: "v1"}
print(dic,type(dic))
# 将python基本数据类型转化成字符串形式
result = json.dumps(dic)
print(result,type(result))

s1 = ‘{"k1":123}‘
# 将python字符串形式转化成基本数据类型
dic = json.loads(s1)
print(dic,type(dic))

# requests结合json序列化实例

import requests
import json

response = requests.get(‘http://wthrcdn.etouch.cn/weather_mini?city=北京‘)
response.encoding = ‘utf-8‘

dic = json.loads(response.text)   #获取http内容
print(dic, type(dic))

1.5 json模块

  • dumps 将基本数据类型转换成字符串形式
  • loads 将字符串转换成python基本数据类型
  • dump 写文件
  • load 读文件
import json
li = [11, 22, 33, ]
json.dump(li, open(‘db‘, ‘w‘))

li = json.load(open(‘db‘, ‘r‘))
print(li, type(li))

Json支持的类型

 +-------------------+---------------+
 | Python            | JSON          |
 +===================+===============+
 | dict              | object        |
 +-------------------+---------------+
 | list, tuple       | array         |
 +-------------------+---------------+
 | str               | string        |
 +-------------------+---------------+
 | int, float        | number        |
 +-------------------+---------------+
 | True              | true          |
 +-------------------+---------------+
 | False             | false         |
 +-------------------+---------------+
 | None              | null          |

1.6 pickle模块

import  pickle

li = [11, 22, 33]
r = pickle.dumps(li)
print(r)

result = pickle.loads(r)
print(result)

# 输出结果
# b‘\x80\x03]q\x00(K\x0bK\x16K!e.‘
# [11, 22, 33]

li = [11, 22, 33]
pickle.dump(li, open(‘db‘, ‘wb‘))

result = pickle.load(open(‘db‘, ‘rb‘))
print(result)

# # 输出结果
# [11, 22, 33]

1.7 json/pickle对比

json 更加适合跨语言,字符串,基本数据类型
pickle,python所有类型的序列化操作,仅适用于python,需要注意版本问题

1.8 time模块

常用:取时间戳

import time
print(time.time())
print(time.mktime(time.localtime()))
print(time.gmtime())    #可加时间戳参数
print(time.localtime()) #可加时间戳参数
print(time.strptime(‘2014-11-11‘, ‘%Y-%m-%d‘))
print(time.strftime(‘%Y-%m-%d‘) )#默认当前时间
print(time.strftime(‘%Y-%m-%d‘,time.localtime())) #默认当前时间
print(time.asctime())
print(time.asctime(time.localtime()))
print(time.ctime(time.time()))

# 输出结果
1465723506.6008098
1465723506.0
time.struct_time(tm_year=2016, tm_mon=6, tm_mday=12, tm_hour=9, tm_min=25, tm_sec=6, tm_wday=6, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=6, tm_mday=12, tm_hour=17, tm_min=25, tm_sec=6, tm_wday=6, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=2014, tm_mon=11, tm_mday=11, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=315, tm_isdst=-1)
2016-06-12
2016-06-12
Sun Jun 12 17:25:06 2016
Sun Jun 12 17:25:06 2016
Sun Jun 12 17:25:06 2016
import time

import datetime

print(time.clock()) #返回处理器时间,3.3开始已废弃

print(time.process_time()) #返回处理器时间,3.3开始已废弃

print(time.time()) #返回当前系统时间戳

print(time.ctime()) #输出Tue Jan 26 18:23:48 2016 ,当前系统时间

print(time.ctime(time.time()-86640)) #将时间戳转为字符串格式

print(time.gmtime(time.time()-86640)) #将时间戳转换成struct_time格式

print(time.localtime(time.time()-86640)) #将时间戳转换成struct_time格式,但返回 的本地时间

print(time.mktime(time.localtime())) #与time.localtime()功能相反,将struct_time格式转回成时间戳格式

#time.sleep(4) #sleep

print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将struct_time格式转成指定的字符串格式

print(time.strptime("2016-01-28","%Y-%m-%d") ) #将字符串格式转换成struct_time格式

1.9 datetime模块

常用:取时间

import datetime
‘‘‘
datetime.date:表示日期的类。常用的属性有year, month, day
datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime:表示日期时间
datetime.timedelta:表示时间间隔,即两个时间点之间的长度
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
strftime("%Y-%m-%d")
‘‘‘
import datetime
print(datetime.datetime.now())
print(datetime.datetime.now() - datetime.timedelta(days=5))

# 输出结果
2016-06-12 17:25:06.637834
2016-06-07 17:25:06.637834

datetime module

import time
import datetime

print(datetime.date.today()) #输出格式 2016-01-26
print(datetime.date.fromtimestamp(time.time()-864400) ) #2016-01-16 将时间戳转成日期格式
current_time = datetime.datetime.now() #
print(current_time) #输出2016-01-26 19:04:30.335935
print(current_time.timetuple()) #返回struct_time格式

#datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
print(current_time.replace(2014,9,12)) #输出2014-09-12 19:06:24.074900,返回当前时间,但指定的值将被替换
str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #将字符串转换成日期格式
new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天
new_date = datetime.datetime.now() + datetime.timedelta(days=-10) #比现在减10天
new_date = datetime.datetime.now() + datetime.timedelta(hours=-10) #比现在减10小时
new_date = datetime.datetime.now() + datetime.timedelta(seconds=120) #比现在+120s
print(new_date)

# 输出结果
2016-06-12
2016-06-02
2016-06-12 23:06:16.843536
time.struct_time(tm_year=2016, tm_mon=6, tm_mday=12, tm_hour=23, tm_min=6, tm_sec=16, tm_wday=6, tm_yday=164, tm_isdst=-1)
2014-09-12 23:06:16.843536
2016-06-12 23:08:16.871634

1.10 logging模块

练习

import logging

#create logger
logger = logging.getLogger(‘TEST-LOG‘)
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create file handler and set level to warning
fh = logging.FileHandler("access.log")
fh.setLevel(logging.WARNING)
# create formatter
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

# add formatter to ch and fh
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add ch and fh to logger
logger.addHandler(ch)
logger.addHandler(fh)

# ‘application‘ code
logger.debug(‘debug message‘)
logger.info(‘info message‘)
logger.warn(‘warn message‘)
logger.error(‘error message‘)
logger.critical(‘critical message‘)

#  输出结果
2016-06-12 22:44:18,521 - TEST-LOG - DEBUG - debug message
2016-06-12 22:44:18,521 - TEST-LOG - INFO - info message
2016-06-12 22:44:18,521 - TEST-LOG - WARNING - warn message
2016-06-12 22:44:18,522 - TEST-LOG - ERROR - error message
2016-06-12 22:44:18,522 - TEST-LOG - CRITICAL - critical message

  

时间: 2024-10-20 17:30:29

05 Python 模块的相关文章

python 学习第五天,python模块

一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py结尾的python文件(文件名:test.py,对应的模块名:test) (2)包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件) 2,导入的方法 (1)import module_name导入某个模块 (2)import module_name,module2_

python模块介绍

adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:连接MySQL数据库的py2exe:用来生成windows可执行文件Pylons:我们领导推荐的web frameworkpysql

常用的python模块及安装方法

adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:连接MySQL数据库的py2exe:用来生成windows可执行文件Pylons:我们领导推荐的web frameworkpysql

转 《python开发_常用的python模块及安装方法》

http://www.cnblogs.com/hongten/p/hongten_python_more_modules.html adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:

50个很棒的Python模块

我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他.推荐收藏. Graphical interface wxPython http://wxpython.org Graphical interface pyGtk http://www.pygtk.org Graphical interface pyQT http://www

Python 模块简单的介绍

Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在dos命令行中为例,说下system方法的作用(通过这个示例,大家对system方法的实用就一目了然了): 1 >>> import os 2 >>> print(os.system('ls')) 3 'ls' 不是内部或外部命令,也不是可运行的程序 4 或批处理文件. 5 1

python 模块之-time

python 模块time import time # 1 time() :返回当前时间的时间戳 time.time() #1473525444.037215 #---------------------------------------------------------- # 2 localtime([secs]) # 将一个时间戳转换为当前时区的struct_time.secs参数未提供,则以当前时间为准. time.localtime() #time.struct_time(tm_ye

python模块部分----模块、包、常用模块

0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的执行步骤: 先看有没有导入过,有的话不管,没有的话下一步 在sys.path中找到模块(除了内置Python的路径,还有当前执行文件路径) 创建新模块的命名空间,执行一遍模块代码,初始化模块 将模块导入进来 1.3import(导入模块) 直接导入整个模块,模块中的变量全部在他自己的命名空间中,不可

爬虫学习 05.Python网络爬虫之三种数据解析方式

爬虫学习 05.Python网络爬虫之三种数据解析方式 引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指定数据解析.因为大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据.因此,本次课程中会给大家详细介绍讲解三种聚焦爬虫中的数据解析方式.至此,我们的数据爬取的流程可以修改为: 指定url 基于r