python 模块

Python模块是实现特定功能的代码集合,有助于提高代码的可维护性。模块分为自定义、内置和开源(第三方)模块。自定义模块通过`import`或`from...import`导入,内置模块如time、random、os等,开源模块需安装。导入模块时,Python解释器根据sys.path查找。导入机制包括:`import module`、`from module import name`和`from module import *`。了解模块分类和导入机制对于有效利用Python资源至关重要。
摘要由CSDN通过智能技术生成

一、模块(modue):

1)模块的定义:用一堆代码实现了某个功能的代码集合

类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合,而对于一个复杂的功能来说,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个.py文件组成的代码集合就称为模块,如:os是系统相关的模块,file是文件操作相关的模块

2)使用模块有什么好处

最大的好处是大大提高了代码的可维护性。

其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

3)模块分类

      1)自定义模块

      2)内置模块

      3)开源模块(第三方模块)

另外,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。
二、介绍模块分类

1、自定义模块

     1)情景

      情景一

     情景二

     

    2)import导入方法

    import:    1)执行对应的文件     2)引入变量名
    (1) import 语句

   import module1[, module2[,... moduleN]

       当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?答案就是解释器有自己的搜索路径,存在sys.path里。  

1

2

['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu',

'/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']  

因此若像我一样在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。

    ( 2) from…import 语句

from  modname import name1[, name2[, ... nameN]]

这个声明不会把整个modulename模块导入到当前的命名空间中,只会将它里面的name1或name2单个引入到执行这个声明的模块的全局符号表。

     (3)  From…import* 语句

1

from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。大多数情况, Python程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义。

(4) 运行本质 

1

2

#1 import test

#2 from test import add  

无论1还是2,首先通过sys.path找到test.py,然后执行test脚本(全部执行),区别是1会将test这个变量名加载到名字空间,而2只会将add这个变量名加载进来。

过程:

导入模块其实就是在告诉Python解释器去解释那个py文件

如果导入的是一个py文件,解释器就解释该py文件

如果导入的是一个包,解释器就解释该包下的__init__.py文件

Python中,导入模块时是根据那个路径作为基准来进行的呢?

默认搜寻模块的地址:可通过sys模块中的sys.path来查看 

  >>> import sys

  >>> sys.path

  ['', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5',    '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload',         '/usr/local/lib/python3.5/site-packages']

  如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。

通过os模块可以获取各种目录

import sys
import os

pre_path = os.path.abspath('../')
sys.path.append(pre_path)

 

2、开源模块(第三方模块)

    1)下载安装 -- 有两种方式

         方法一            方法二
yum ... 下载源码
pip ... 解压源码
apt-get ... 进入目录
  编译源码    python setup.py build
  安装源码    python setup.py install

 

1 下载源码
2 解压源码
3 进入目录
4 编译源码  python setup.py build
5 安装源码  python setup.py install

注:在使用源码安装时,需要使用到gcc编译和Python开发环境,所以,要事先将环境安装上

1 yum install gcc
2 yum install python-devel
3 或
4 apt-get python-dev

安装成功后,模块会自动安装到sys.path中的某个目录中,如:

1 /usr/lib/python3.5/site-packages/

导入模块的方式同自定义模块导入的方式一样

 

3、内置模块

在安装完成python后,python本身就带有库,这个库叫做python内置库,那么内置模块也被称之为标准库

1)time模块

在python中,通常有以下几种方式来表示时间:

时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,

格式化的时间字符串:

元组(struct_time):struct_time元组共有9个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

import time

print(time.time())  # 返回当前时间的时间戳 1537413568.4175603
print(time.localtime())  # 将一个时间戳转换为当前时区
print(time.gmtime())  # localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。

#结果
1537413652.9021907

time.struct_time(tm_year=2018, tm_mon=9, tm_mday=20, tm_hour=11, tm_min=20, tm_sec=52, tm_wday=3, tm_yday=263, tm_isdst=0)

time.struct_time(tm_year=2018, tm_mon=9, tm_mday=20, tm_hour=3, tm_min=20, tm_sec=52, tm_wday=3, tm_yday=263, tm_isdst=0)



print(time.ctime())  # Thu Sep 20 11:21:55 2018
print(time.gmtime(time.time()-9000))#返回utc时间的struc时间对象格式
#日期转换成时间戳
time_struct = time.strptime("2016-12-12 18:24:30","%Y-%m-%d %X")
print(time_struct)
#将日期字符串转换struct时间对象格式

#将struct时间对象转换成时间戳
time_struct = time.strptime("2016-12-12 18:24:30","%Y-%m-%d %X&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值