Python 常用模块学习

一、什么是模块

Python中的模块是可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块。Python允许“导入”其他模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统。Python中,模块也是对象。在一个模块的顶层定义的所有变量都在被导入时成为了被导入模块的属性。

二、模块的使用

1、python程序架构
一个Python程序通常包括一个顶层程序文件和若干个模块文件。顶层文件包含了程序的主要控制流程,模块文件是为顶层文件或其他模块提供各种功能性组件,模块首次导入(或重载)时,Python会立即执行模块文件的顶层程序代码(不在函数内的代码),而位于函数主体内的代码直到函数被调用后才会执行。
2、模块的执行环境
模块是被导入的,但模块也可以导入和使用其他模块,这些模块可以用Python或其它编程语言写成
模块可内含变量、函数以及类来进行其工作,而函数和类可以包含变量和其它元素
3、导入模块
在导入模块时只能使用模块名,而不能使用带.py后缀的模块文件名

import语句:
            导入指定的整个模块,包括生成一个以模块名命名的名称空间
            import module1[,module2[,...moduleN]]
            建议一个import语句只导入一个模块
            import module as module_alias
from-import语句:
            常用于只导入指定模块的部分属性至当前名称空间
            from module import name1[,name2[,...nameN]]
          import和from-import是赋值语句
            import和from是可执行语句,类似于def,因此,它们可以嵌套在if测试中,出现于def中等等
            Python执行到这些语句时才会对其进行解析,这意味着,所有来自模块的属性仅在import语句执行后才能使用
模块就是名称空间
            模块的名称空间可以通过属性__dict__或dir(M)获取
                模块属性可通过点号(.)运算符获取,格式为M.attr
            模块是一个独立的作用域(本地变量就是全局变量)

4、import的工作机制
import语句导入指定的模块时会执行三个步骤
1、找到模块文件
在指定的路径下(sys.path)搜索模块文件
2、编译成字节码
文件导入时就会编译,因此,顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc文件
3、执行模块的代码来创建其所定义的对象
模块文件中的所有语句会依次执行,从头到尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性
注意:模块只在第一次导入时才会执行如上步骤,后续的导入操作只不过是提取内存中已加载的模块对象,reload()可用于重新加载模块

三、time

time模块用来操作时间值
时间戳:time.time()
格式化时间:字符串表示,time.strftime(‘%Y-%m-%d‘)
结构化时间:元组表示,time.localtime(), time.gmtime()

asctime:返回时间格式Sun Mar 18 10:51:28 2018
In [1]: import time
In [2]: time.asctime()
Out[2]: ‘Sun Mar 18 10:51:28 2018‘
In [3]: time.asctime(time.localtime())
Out[3]: ‘Sun Mar 18 10:51:45 2018‘
ctime:将自纪元以来的时间以秒为单位转换为本地时间的字符串,相当于time.asctime(time.localtime())
In [4]: time.ctime()
Out[4]: ‘Sun Mar 18 10:55:26 2018‘
gmtime:当前UTC时间
In [7]: time.gmtime()
Out[7]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=2, tm_min=58, tm_sec=1, tm_wday=6, tm_yday=77, tm_isdst=0)
localtime:返回本地时间
In [9]: time.localtime()
Out[9]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=11, tm_min=3, tm_sec=56, tm_wday=6, tm_yday=77, tm_isdst=0)
strptime:将传入的时间转换为str格式的时间
In [11]: time.strptime(‘2018-3-18‘, ‘%Y-%m-%d‘)
Out[11]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=77, tm_isdst=-1)
strftime:将struct格式时间转换为指定格式的时间
In [13]: time.strftime(‘%Y-%m-%d‘)
Out[13]: ‘2018-03-18‘
In [14]: time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
Out[14]: ‘2018-03-18 03:09:47‘
mktime:将struct时间转换为时间戳
In [15]: time.mktime(time.strptime(‘2018-3-18‘, ‘%Y-%m-%d‘))
Out[15]: 1521302400.0
sleep:睡眠时间
In [16]: time.sleep(5)

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
>>> import time
#当前时间
>>> print(datetime.datetime.now())
2018-03-18 12:10:27.199643
#格式化时间戳
>>> print(datetime.date.fromtimestamp(time.time()))
2018-03-18
#当前时间?3天
>>> print(datetime.datetime.now() + datetime.timedelta(3))
2018-03-21 12:10:52.869598
#当前时间?3天
>>> print(datetime.datetime.now() + datetime.timedelta(-3))
2018-03-15 12:11:04.721491
#当前时间?3小时
>>> print(datetime.datetime.now() + datetime.timedelta(hours=3))
2018-03-18 15:11:18.628036
#当前时间?4小时
>>> print(datetime.datetime.now() + datetime.timedelta(hours=-4))
2018-03-18 08:11:42.096182
#当前时间?120分钟
>>> print(datetime.datetime.now() + datetime.timedelta(minutes=120))
2018-03-18 14:11:53.305800

四、random

随机数

In [1]: import random
In [2]: random.random()
Out[2]: 0.9381887159573181
#随机返回1到10之间的整数
In [3]: random.randint(1,10)
Out[3]: 8
#从1到10中,2为步长随机返回一个数
In [4]: random.randrange(1,10,2)
Out[4]: 5
#随机返回序列中的元素
In [5]: random.choice([1,2,3,4])
Out[5]: 3
#打乱序列中的元素顺序
In [10]: l1 = [1,2,3,4]
In [11]: random.shuffle(l1)
In [12]: l1
Out[12]: [1, 2, 4, 3]
#随机返回序列中的2个元素
In [13]: random.sample(l1,2)
Out[13]: [2, 4]

原文地址:http://blog.51cto.com/jiayimeng/2088111

时间: 2024-11-07 20:42:53

Python 常用模块学习的相关文章

Python自动化基础【day05】:Python常用模块学习

本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在

Python常用模块学习

1.模块介绍 2.time & datetime模块 3.random 4.os 5.sys 6.shutil 7.json&pickle 8.shelve 9.xml处理 10.yaml处理 11.configparser 12.hashlib 13.subprocess 14.logging模块 15.re正则表达式 1.模块 模块,就是用一坨代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合

Day5 - Python基础5 常用模块学习

Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,

Python subprocess模块学习总结

从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息 一.subprocess以及常用的封装函数 运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

常用模块学习(一)

常用模块学习(一) 常用模块学习-小鸡汤 推荐节目-晓说: <晓说>是2012年3月高晓松开始主持的网络脱口秀节目 每期由主持人高晓松谈论一个热门话题,打造视频化的"高晓松专栏文章" 常用模块学习-模块的种类和导入方法 ''' 1.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方

python——常用模块

time.asctime(time.localtime(1234324422)) python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型.

实战篇一 python常用模块和库介绍

# [email protected] coding: utf-8 [email protected] -- Python 常用模块和库介绍 第一部分:json模块介绍 import json 将一个Python数据结构转换为JSON: dict_ = {1:2, 3:4, "55":"66"} # test json.dumps print type(dict_), dict_ json_str = json.dumps(dict_) print "js

python——常用模块2

python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") logging.info("info message") logging.warning("warning message") logging.error("error message") logging.critical('critical message')