一、模块与包

  模块,在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。一般用module_name.fun_name,和module_name.var_name进行使用。这样的语义用法使模块看起来很像类或者名字空间,可将module_name 理解为名字限定符。模块名就是文件名去掉.py后缀。

  通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。
  在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块

二、import导入

  在python用import或者from…import或者from…import…as…来导入相应的模块,作用和使用方法与C语言的include头文件类似。其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度。python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块。

  import的几种用法:

  1.如果是本地导入文件,直接使用:import filename

  2. 如果导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,只有有了__init__.py文件,python解析器才会把这个目录当成是的包

  在导入的时候,.py的后缀直接省略,如果是多级的包,或者想导入包里面的函数等,可以使用from进行导入。实例如下:

#test.py
def hello():
print('hello world')
import momo.test
momo.test.hello() from momo import test
test.hello() from momo.test import hello
hello() import momo.test as aaa
print ('aaaaaaaaaaaaaa')
aaa.hello()
print ('aaaaaaaaaaaaaa')

结果:

 

三、datatime获得时间

  在 Python 文档里,time是归类在Generic Operating System Services中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读文档可知,time 模块是围绕着 Unix Timestamp 进行的。关于时间子类之间的对应关系:

object
timedelta
tzinfo
time
date
datetime

  实例:获取当前的时间

from datetime import datetime, timedelta

now_time = datetime.now()
print (now_time)
new_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
a = now_time.strftime('%c')
print (new_time)
print (a)

  结果:

  解释:

  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  类似于这种形式

  实例:获取当前日期的前一天与后一天

now_time = datetime.now()
yesterday = now_time + timedelta(days=-1)
tomorrow = now_time + timedelta(days=+1)
tomorrow = tomorrow.strftime('%Y-%m-%d')
print (yesterday)
print (tomorrow)

  结果:

  解释:正数代表几天之后的,负数代表几天之前的

四、时间格式的相互转换

  时间有三种存在方式:时间对象(datetime)、时间字符串(str)、时间戳(timestamp)

  1.时间对象转换为时间字符串(datetime → str)

from datetime import datetime
import time
now_time = datetime.now()
print (now_time)
print (type(now_time))
print ('##########time to str############')
_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
print (_time)
print (type(_time))

 结果:

  2.时间字符串转换为时间对象(str → datetime)

print ('###########str to time################')
d_time = datetime.strptime(_time,'%Y-%m-%d %H:%M:%S')
print (d_time)
print (type(d_time))

  结果:

  3.时间戳转换为时间对象(timestamp → datetime)

_a = time.time()
print (_a)
_n_time = datetime.fromtimestamp(_a)
print (_n_time)
print (type(_n_time))

  结果:

  

Python的import导入与时间的更多相关文章

  1. Python使用import导入模块时报ValueError: source code string cannot contain null bytes的解决方案

    老猿在导入一个Python模块时报错: >>> import restartnet.py Traceback (most recent call last): File " ...

  2. Python入门-import导入模块功能

    1.啥是模块 模块(module):用来实现或者多个功能的Python代码,(包含变量.函数.类),本质就是*.py后缀文件. 包(package):定义了一个由模块和子包组成的Python应用程序执 ...

  3. Python使用import导入模块时执行了模块的文件但报ModuleNotFoundError错误的愚蠢问题

    老猿在学习import导入自定义模块时,搜索路径中sys.path中已经添加对应路径,发现会报ModuleNotFoundError,但对应的模块代码被执行了,代码myfib.py如下: def fi ...

  4. Python中import导入上一级目录模块及循环import问题的解决

    转自:https://www.cnblogs.com/sjy18039225956/p/9265461.html 使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python ...

  5. Python使用import导入相对路径的其他py文件

    假如有如下的目录结构 . ├── setup.py ├── main.py ├── mod/ │   └── mod.py └── sub/ └── sub.py 情况1:setup.py导入main ...

  6. 7行代码,彻底告别python第三方包import导入问题!

    最近有不少小伙伴咨询关于pyton第三方包导入的问题,今天我们就来聊聊第三方包导入那些事. 随着对python学习的渐入臻境,越来越多的小伙伴们开始导入自己所需的第三方包,实现各种各样的功能.但是,他 ...

  7. 【python基础】使用import导入相对路径的源文件

    前言 在编写python代码的过程中,不同路径下的源码文件该如何引用,这是个问题,本文针对这个问题介绍解决方法. 源码目录结构: . ├── conf.py ├── main.py ├── mod/ ...

  8. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块)   一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...

  9. python笔记-6(import导入、time/datetime/random/os/sys模块)

    一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...

随机推荐

  1. 搭建packagist私服和composer

    1.下载源码 https://github.com/composer/packagist 2.修改配置文件 cp app/config/parameters.yml.dist  app/config/ ...

  2. python:递归函数

    1,初识递归函数 1)什么是递归函数? 在函数中自己调用自己叫做递归函数 递归函数超过一定程度会报错.---RecursionError: maximum recursion dep th excee ...

  3. 【UVA1309】Sudoku(DLX)

    点此看题面 大致题意: 让你填完整一个\(16*16\)的数独. 解题思路 我们知道,数独问题显然可以用\(DLX\)解决. 考虑对于一个数独,它要满足的要求为:每个位置都必须有数,每一行都必须有全部 ...

  4. POJ 1416 Shredding Company【dfs入门】

    题目传送门:http://poj.org/problem?id=1416 Shredding Company Time Limit: 1000MS   Memory Limit: 10000K Tot ...

  5. 2018.10.17 学习如何使用Shiro

    参考学习https://www.javazhiyin.com/19502.html

  6. 在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现

    在创建之前要安装好jetty jetty官网链接:https://jettylife.com/ 现在进行创建项目: 需要按照好jdk 现在进行添加jetty 现在进行配置 完成后ok ok 下面警告的 ...

  7. WSASocket()与Socket()的区别 转

    /**************************************************** WSASocket是Windows专用,支持异步操作:socket是unix标准,只能同步操 ...

  8. EF6 AddOrUpdate之后,数据没有改变而是新增了一条数据解决办法

    EF:修改不是查询出来的对象dbContext.Web_User.AddOrUpdate(user);dbContext.SaveChanges(); 上面的写法有时候可能不起作用,而且把这条数据重复 ...

  9. o'Reill的SVG精髓(第二版)学习笔记——第七章

    第七章:路径 所有描述轮廓的数据都放在<path>元素的d属性中(d是data的缩写).路径数据包括单个字符的命令,比如M表示moveto,L表示lineto.接着是该命令的坐标信息. 7 ...

  10. python学习笔记--变量和运算符

    一.变量命名规则 1.字母.数字.下划线组成 2.不以数字开头 3.关键字(也叫保留字),不能用作变量名 4.遵循PEP8命名规范 二.变量赋值 1.赋值符号 = 2.多重赋值 x=y=123 3.多 ...