一、模块与包

  模块,在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. oc 无中生有添加协议(使已有函数符合协议)

    class_addProtocol([UIButton class],@protocol(UIButtonExport)); @protocol UIButtonExport <JSExport ...

  2. HDU 2082 普通型母函数

    分析: 组成单词好说,价值如何体现? 改变指数就行,例如: 这样,组成的单词,指数就是权值,多项式相乘,指数小于50的就OK: #include <bits/stdc++.h> using ...

  3. table自适应

    当table大于屏幕时,table可以左右滑动 //给table的父元素设置样式 .edit_table{ width:100%; overflow: auto; }

  4. Intellij IDEA 报错java.lang.NoClassDefFoundError

    Intellij IDEA 报错java.lang.NoClassDefFoundError 11-Aug-2018 23:48:24.686 严重 [http-nio-8080-exec-5] or ...

  5. Notepad++ 插件之 TextFX (安装及作用)

    <安装:打开 notepad++  插件 -> Plugin Manager -> Show Plugin Manager -> available ->选中 TextF ...

  6. data-ng-hide 指令

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. 配置两台Azure服务器,一台加入另一台的ad域加入不进去的问题

    AD服务器   10.0.0.4 数据库服务器    10.0.0.5 将数据库服务器加入到AD域中,需要将Azure的DNS改成10.0.0.4 Copy一下

  8. antd不想写那么多option怎么办

    做项目的时候发现如果下拉列表选项多的时候会写很多的 Option ,但是用到下拉列表的地方又超级多.所以自己写了一个方法,哪需要就放到哪. 记录一下方法.留待以后用 selectStreetIdCha ...

  9. 【TOJ 1449】Area of Circles II(求不同位置的两圆面积之和)

    描述 There are two circles on the plane. Now you must to calculate the area which they cover the plane ...

  10. Maria-DB

    mysql客户端可用选项: -A, --no-auto-rehash 禁止补全 -u, --user= 用户名,默认为root -h, --host= 服务器主机,默认为localhost -p, - ...