11 python --模块

在日常的开发工作中,我们要写很多的python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函写在不同的文件里,这样每个文件包含的文件就比较少,逻辑更加清楚。在python中,我们创建的文件基本都是以.py结尾,那一个.py的文件就称之为模块。
为了方便管理方便管理模块,python中又引了包(Package)这个概念。每个包下面都有一个__init__.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块

a)    import导入
有时候一个文件或者一个包中已经出现了一个函数,我们在另一个python代码中需要引入该文件或者该文件的某个函数,那怎么解决呢?python给我们提供一个关键字import,下面我们来了解一下它的用法:
1,    如果是本地导入文件,直接使用:import filename
2,    如果导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,只有有了__init__.py文件,python解析器才会把这个目录当成是的包
常用的导入模块常用的格式:
form xxx import xxx
import xxx
在导入的时候,.py的后缀直接省略,如果是多级的包,或者想导入包里面的函数等,可以使用from进行导入,举个例子:
from aaa import bbb
import os
解释:第一个例子是导入aaa包下面的bbb模块或者导入aaa文件下面的bbb类或者函数
第二个import是直接导入系统模块os模块

import ling.test as aaa
print(‘aaaaaaaaaaaaaaaaaaaaaa‘)
aaa.hello()
print(‘aaaaaaaaaaaaaaaaaaaaaa‘)

加深了解

#import导入模块干的事:
‘‘‘
1.产生新的名称空间
2.以新建的名称空间为全局名称空间,执行文件的代码
3.拿到一个模块名spam,指向spam.py产生的名称空间
‘‘‘
# money=1000000000000000000000000000000000000000000
# print(spam.money)
# print(spam.read1)
# spam.read1()
# def read1():
#     print(‘from test.py‘)
# spam.read2()

#
# money=10
# spam.change()
# print(money)

import spam as x
# print(x.money)

# from ... import ...

# from spam import money,read1,read2,change

‘‘‘
1.产生新的名称空间
2.以新建的名称空间为全局名称空间,执行文件的代码
3.直接拿到就是spam.py产生的名称空间中名字
‘‘‘

‘‘‘
from ... import ...
优点:方便,不用加前缀
缺点:容易跟当前文件的名称空间冲突

‘‘‘

# print(money)
# read1()

# money=10
# del money
# print(money)

#
# def read1():
#     print(‘=========from test.py read1‘)
# read2()
# import time
# money=100
# print(money)
# time.sleep(200)
#
# read1=10000000
# from spam import read1
# read1()

# from spam import *
#
# print(money)
# read1()

# __all__=[‘money‘]
# from spam import *
# print(money)
#
# read1()

b)    datetime的使用

The distinction between naive and aware doesn’t apply to timedelta objects.

Subclass relationships:

object
    timedelta
    tzinfo
    time
    date
        datetime
time
在 Python 文档里,time是归类在Generic Operating System Services中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读文档可知,time 模块是围绕着 Unix Timestamp 进行的。

import time
time1 = time.time()
time.sleep(5)
python 开发过程中,我们经常会用到获取当前时间,根据当前时间生成一个和当天时间相关的文件,这样我们在后期看查找文件的时候就方便了很多,那python又如何来获取当前时间呢?
from datetime import datetime
now_time = datetime.now()
a = now_time.strftime(‘%Y-%m-%d‘)
print(now_time)
print(a)
print(type(now_time))
结果:
2017-04-25 14:23:37.339000
2017-04-25
<type ‘datetime.datetime‘>
解释:
1,    先导入datetime类
2,    通过datetime的now方法就获得当前所需要的时间
3,    datetime还是有好多方法的,可以获取year, month,等,请通过dir()方法查看
4,    此时我们获得的now_time还是一个datetime类,所以我们需用用strftime方法转换成字符串,strftime的参数就是最终需要字符串的形式。
5,    Strftime需要便是时间的参数有很多,下面我们介绍一下最长用的一些参数:
格式参数:
%Y 带世纪部分的十制年份
%m 十进制表示的月份
%d 十进制表示的每月的第几天
%H 24小时制的小时
%M 十时制表示的分钟数
%S 十进制的秒数
%c  标准时间,如:04/25/17 14:35:14  类似于这种形式
这几个参数就是最常用到的我们用的时间

例子:
from datetime import datetime, timedelta
now_time = datetime.now()
a = now_time.strftime(‘%c‘)
print(now_time)
print(a)
b = now_time + timedelta(days=-1)
print(b)
结果:
2017-04-25 14:37:26.996000
04/25/17 14:37:26
2017-04-24 14:37:26.996000
解释:
Timedelta可以接收days和seconds两个参数,正数代表几天之前的,负数代表几天之前的。所以b代表的是一天之前的时间。

时间的三种存在方式:时间对象,时间字符串,时间戳。

(1)    字符串转datetime:
from datetime import datetime, timedelta
string = ‘2017-04-25 11:59:58‘
time1 = datetime.strptime(string, ‘%Y-%m-%d %H:%M:%S‘)
print(time1)
print(type(time1))
结果:
2017-04-25 11:59:58
<type ‘datetime.datetime‘>

(2)    datetime转字符串:
from datetime import datetime, timedelta
string = ‘2017-04-25 11:59:58‘
time1 = datetime.strptime(string, ‘%Y-%m-%d %H:%M:%S‘)
print(time1)
print(type(time1))
time1_str = datetime.strftime(time1, ‘%Y-%m-%d %H:%M:%S‘)
print(type(time1_str))
print(time1_str)
结果:
2017-04-25 11:59:58
<type ‘datetime.datetime‘>
<type ‘str‘>
2017-04-25 11:59:58
解释:

(3)时间戳转时间对象:
from datetime import datetime, timedelta
import time
time1 = time.time()
print(time1)
time1_str = datetime.fromtimestamp(time1)
print(time1_str)
print(type(time1_str))
结果:
1493107955.66
2017-04-25 16:12:35.660000
<type ‘datetime.datetime‘>
解释:
1,    datetime模块是包装了time模块的,所以只需要了解datetime模块就可以。
2,    time.time()是或者当前时间的时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
3,    datetime下面下面有个函数fromtimestamp(时间戳)会把时间戳自动转换成datetime类型

时间: 2024-10-09 07:24:40

11 python --模块的相关文章

11、python模块的导入

前言:本文主要介绍python模块的导入,包括模块的定义.模块的作用.导入方式以及模块的搜索路径. 一.模块的定义 python模块(module),简单来说就是一个python文件,以.py结尾,文件内容包含了python对象定义和python语句 二.模块的作用 模块可以让你能够有逻辑地组织Python代码段 把相关的功能代码写到到一个模块里能让你的代码更好用,更清晰易懂 模块能定义函数,类和变量,模块里也能包含可执行的代码 三.模块的导入方式 1.直接导入模块或导入模块的某个对象: imp

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

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模块的导入以及模块简介

一.模块的定义及类型 1.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块 2.类型 1)自定义模块,自己写的实现自己某些功能需求的.py文件集合 2)导入的模块 在你安装python之后,它自己内部的lib文件下就有很多模块可以用,导入后就可以使用,通常路径是C:\Python27\Lib   (27是版本号,如果是3.5的版本就是C:\Python35\L

编程:C#调用Python模块

当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python. 如果让C#支持调用Python模块,我们首先需要安装一些扩展,这里推荐使用IronPython库. 第一步,我们需要下载IronPython库的安装包,这里请大家移步官网 http://ironpython.codeplex.com/ ,下载并安装相关库文件. 第二步,我们新建一个C#控制台测试项目,并将IronPython安装目录

Python/模块与包之模块

Python/模块与包之模块 1.什么是模块? 模块就是py文件 2.为什么要用模块? 如果在解释器上进行编码,把解释器关闭之前写的文件就不存在了,如果使用模块的话就能永久保存在磁盘中. 3.如何使用模块? 3.1 import    通过import导入要使用的模块 1 #spam.py 2 print('from the spam.py') 3 4 money=1000 5 6 def read1(): 7 print('spam->read1->money',1000) 8 9 def

Python模块之: configobj(转)

原来也有写过一篇文章Python模块之: ConfigParser 用来解析INI文件,但是在使用过程中存在一些问题.比如:1,不能区分大小写.2,重新写入的ini文件不能保留原有INI文件的注释.3,重新写入的ini文件不能保持原有的顺序.4,不支持嵌套.5,不支持格式校验.我本来是想扩展ConfigParser来支持上面的一些缺点的,但是我觉得应该有人有类似的问题并应该有相关的模块满足我上面的需求的,于是放G搜索之.得到一个Lib: configobj.下面我将举例说明其常用的几个方法:项目

浅析 C++ 调用 Python 模块

浅析 C++ 调用 Python 模块 作为一种胶水语言,Python 能够很容易地调用 C . C++ 等语言,也能够通过其他语言调用 Python 的模块. Python 提供了 C++ 库,使得开发者能很方便地从 C++ 程序中调用 Python 模块. 具体的文档参考官方指南: Embedding Python in Another Application 调用方法 1 链接到 Python 调用库 Python 安装目录下已经包含头文件( include 目录)和库文件 ( Windo

7.python模块补充

此文章是对上节文章模块的补充 一,xml模块 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.xml的格式如下,就是通过<>节点来区别数据结构的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?xml version="1.0"?> <data>     <country nam