四周四次课(11月9日) 10.1 import 10.2 datetime获取时间 10.3 时间格式相互转换
2017-11-10 09:07
477 查看
四周四次课(11月9日)
10.1 import
在日常的开发工作中,我们要写很多的python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函写在不同的文件里,这样每个文件包含的文件就比较少,逻辑更加清楚。在python中,我们创建的文件基本都是以.py结尾,那一个.py的文件就称之为模块。为了方便管理方便管理模块,python中又引了包(Package)这个概念。每个包下面都有一个init.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。init.py可以是空文件,也可以有Python代码,因为init.py本身就是一个模块,举个例子:test目录下面有init.py, aaa.py,bbb.py三个文件,如下图所示:
[root@localhost ~]# tree test test ├── aaa.py ├── bbb.py └── __init__.py 0 directories, 3 files
pycharm可以创建Python package,报下会自动生成init.py文件
有时候一个文件或者一个包中已经出现了一个函数,我们在另一个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类或者函数
还有一种例子
from test.aaa import xxx
注意在使用的时候,导入什么,调用写什么。导入的时候不写后缀名
第二个import是直接导入系统模块os模块,相当于起一个别名
import ling.test as aaa print('aaaaaaaaaaaaaaaaaaaaaa') aaa.hello() print('aaaaaaaaaaaaaaaaaaaaaa')
10.2 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 进行的。
time一般不用于取时间,取时间用datetime
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代表的是一天之前的时间。
10.3 时间格式相互转换
时间的三种存在方式:时间对象,时间字符串,时间戳。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类型
相关文章推荐
- 10.2-10.3 datetime与时间格式的相互转换
- c# 中Datetime时间格式与Unix时间格式的相互转换
- 日期格式和时间戳相互转换 外带一个获取当前程序根目录
- java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数
- Java获取当前时间,时间戳转换为时间格式
- 时间戳与时间格式的相互转换 4000
- 如何获取当天某个时间并与时间戳相互转换
- import、time与datetime与时间格式转化
- ArcGIS AddIN 10.3项目与10.1项目的相互转换
- JAVA,jsp,oracle获取系统当前时间以及日期格式转换!
- js 时间格式与时间戳的相互转换示例代码
- j2me中获取系统时间并转换成字符串格式
- 时间与时间戳的相互转换以及获取当前设备时间
- mysql获取日期(将时间戳转换成短日期格式)
- iOS时间格式的相互转换
- ios用lame把wav转换成MP3格式获取时间不对解决方案
- JS获取当前时间 时间戳和日期字符串相互转换
- jde时间格式int转换为datetime
- 获取系统时间函数及时间格式的转换
- iOS 获取系统时间以及时间与日期格式互相转换