一、时间模块

import time
print(time) # <module 'time' (built-in)> import time
print('暂停开始')
secs = 3
time.sleep(secs) # 延迟线程的运行
print('暂停结束')

重点:

1、时间戳:可以作为数据的唯一标识,是相对于1970-1-1-0:0:0 时间插值

import time
print(time.time()) # 1554878644.9071436

2、当前时区时间:东八区(上海时区)

print(time.localtime())
# time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10,tm_hour=14, tm_min=48,tm_sec=29, tm_wday=2, tm_yday=100, tm_isdst=0) # 年
print(time.localtime()[0]) #
print(time.localtime().tm_year) #

3、格林威治时区

import time
print(time.gmtime())

4、可以将时间戳转化为时区的time

import time
print(time.localtime(5656565653))
print(time.localtime(time.time()))

5、应用场景 => 通过时间戳,获得该时间戳能反映出的年月日等信息

import time
print(time.localtime(5656565653).tm_year) #
%y 两位数的年份表示(-)
%Y 四位数的年份表示(-)
%m 月份(-)
%d 月内中的一天(-)
%H 24小时制小时数(-)
%I 12小时制小时数(-)
%M 分钟数(=)
%S 秒(-)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(-)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(-)星期天为星期的开始
%w 星期(-),星期天为星期的开始
%W 一年中的星期数(-)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

6、格式化时间

格式化的字符串,时间tuple

import time
res = time.strftime('%Y-%m-%d %j days')
print(res) # 2019-04-10 200 days t = (2020, 4, 10, 10, 19, 22, 2, 200, 0)
res = time.strftime('%Y-%m-%d %j days', t)
# 没有确保数据的安全性,只是将元组信息转化为时间格式的字符串
print(res) # 2020-04-10 200 days

7、需求:输入一个年份,判断其是否是闰年

解析:
1.能被400整除 year % 400 == 0
2.能被4整除不能被100整除 year % 4 == 0 and year % 100 != 0 方式一:
year = int(input('year:>>>'))
b1 = year % 400 == 0
b2 = year % 4 == 0 and year % 100 != 0
if b1 or b2:
print('是闰年')
else:
print('不是闰年') 方式二:
import calendar
print(calendar.isleap(2018)) # False # 判断是否为闰年

8、import calender

①判断闰年:calendar.isleap(year)
import calendar
print(calendar.isleap(2000)) # True ②查看某年某月日历:calendar.month(year, month)
import calendar
print(calendar.month(2019,4)) ③查看某年某月起始星期与当月天数:calendar.monthrange(year, month)
import calendar
print(calendar.monthrange(2019, 4)) # (0,30)
print(calendar.monthrange(2019, 3)) # (4,31) ④查看某年某月某日是星期几:calendar.weekday(year, month, day)
import calendar
print(calendar.weekday(2019, 4, 10)) # 2 星期是从0开始,0代表星期一

9、datatime 可以运算的时间

import datetime
print(datetime) # <module 'datetime' from 'D:\\Python36\\lib\\datetime.py'> res = datetime.datetime.now()
print(res) # 2019-04-10 15:30:39.649993
print(type(res)) # <class 'datetime.datetime'> day = datetime.timedelta(days=1)
print(day) # 1 day, 0:00:00
print(type(day)) # <class 'datetime.timedelta'> # res与day都是对象,可以直接做运算
print(res-day) # 2019-04-09 15:50:15.130227
①当前时间:datetime.datetime.now()
import datetime
res = datetime.datetime.now()
print(res) # 2019-04-10 15:30:39.649993 ②昨天:datetime.datetime.now() + datetime.timedelta(days=-1)
import datetime
res = datetime.datetime.now() + datetime.timedelta(days=-1)
print(res) # 2019-04-09 15:44:19.486885 ③修改时间:datatime_obj.replace([...])
import datetime
res = datetime.datetime.now()
print(res.replace(year=2200)) # 2200-04-10 15:30:39.649993 ④格式化时间戳:datetime.date.fromtimestamp(timestamp)
print(datetime.date.fromtimestamp(5656565653)) # 2149-04-01

二、系统模块

1、sys:系统

import sys
print(sys) # <module 'sys' (built-in)>
print(sys.argv) # ['D:/SH-fullstack-s3/day17/part1/系统模块.py']
print(sys.path) # ***** # 退出程序,正常退出时exit(0)
print(sys.exit(0)) # 获取Python解释程序的版本信息
print(sys.version) # 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] print(sys.maxsize) #
a = 922337203685477580712321
print(a, type(a)) # 922337203685477580712321 <class 'int'> # 操作系统平台名称
print(sys.platform) # win32

2、os:操作系统

import os

1、生成单级目录:os.mkdir('dirname')
print(os.mkdir('aaa')) # 不存在创建,存在抛异常 2、生成多层目录:os.makedirs('dirname1/.../dirnamen2')
print(os.makedirs('a/b/c'))
3、移除多层空目录:os.removedirs('dirname1/.../dirnamen')
print(os.removedirs('a/b/c'))
4、重命名:os.rename("oldname","newname")
print(os.rename('','')) 5、删除文件:os.remove
print(os.remove('ccc.py')) 6、工作目录(当前工作目录):os.getcwd()
print(os.getcwd()) # D:\SH-fullstack-s3\day17\part1 # 当前工作目录 7、删除单层空目录(删除文件夹):os.rmdir('dirname')
print(os.rmdir('bbb'))
print(os.rmdir('bbb/eee'))
print(os.remove('bbb/ddd.py'))
8、移除多层空目录:os.removedirs('dirname1/.../dirnamen') 9、列举目录下所有资源:os.listdir('dirname')
print(os.listdir(r'D:\SH-fullstack-s3\day17')) # ['part0', 'part1'] 10、路径分隔符:os.sep
print(os.sep) # \ 11、行终止符:os.linesep
print(os.linesep)
print(ascii(os.linesep)) # '\r\n' 12、文件分隔符:os.pathsep
print(os.pathsep) # ; 13、操作系统名:os.name
print(os.name) # nt 14、操作系统环境变量:os.environ
print(os.environ) 15、执行shell脚本:os.system()
print(os.system('dir')) 16、当前工作的文件的绝对路径
print(__file__) # D:/SH-fullstack-s3/day17/part1/系统模块.py

3、os.path:系统路径操作

import os.path

1、执行文件的当前路径:__file__
print(__file__) # D:/SH-fullstack-s3/day17/part1/系统模块.py 2、返回path规范化的绝对路径:os.path.abspath(path)
print(os.path.abspath(r'a')) # D:\SH-fullstack-s3\day17\part1\a 3、将path分割成目录和文件名二元组返回:os.path.split(path)
print(os.path.split(r'D:\SH-fullstack-s3\day17\part1')) # ('D:\\SH-fullstack-s3\\day17', 'part1')
print(os.path.split(r'D:\SH-fullstack-s3\day17\part1\\')) # ('D:\\SH-fullstack-s3\\day17\\part1', '') 4、上一级目录:os.path.dirname(path)
print(os.path.dirname(r'D:\SH-fullstack-s3\day17\part1')) # D:\SH-fullstack-s3\day17 5、最后一级名称:os.path.basename(path)
print(os.path.basename(r'D:\SH-fullstack-s3\day17')) # day17 6、指定路径是否存在:os.path.exists(path)
print(os.path.exists(r'D:\SH-fullstack-s3\day17\part1\系统模块.py')) # True
print(os.path.exists(r'ccc')) # False 7、是否是绝对路径:os.path.isabs(path)
print(os.path.isabs(r'D:\SH-fullstack-s3\day17\part1\aaa')) # True
print(os.path.isabs(r'aaa')) # False 8、是否是文件:os.path.isfile(path)
print(os.path.isfile(r'D:\SH-fullstack-s3\day17\part1\系统模块.py')) # True
print(os.path.isfile(r'D:\SH-fullstack-s3\day17\part1')) # False 9、是否是路径:os.path.isdir(path)
print(os.path.isdir(r'D:\SH-fullstack-s3\day17\part1')) # True
10、路径拼接:os.path.join(path1[, path2[, ...]])
print(os.path.join(r'D:\SH-fullstack-s3\day17\part1', 'a', 'b', 'c'))
# 结果为 D:\SH-fullstack-s3\day17\part1\a\b\c 11、最后存取时间:os.path.getatime(path)
print(os.path.getatime(r'D:\SH-fullstack-s3\day17\part1\时间模块.py')) # 结果为 1554883111.9426434 12、最后修改时间:os.path.getmtime(path)
print(os.path.getmtime(r'D:\SH-fullstack-s3\day17\part1\时间模块.py'))
# 结果为 1554883111.948644 13、目标大小:os.path.getsize(path)
print(os.path.getsize(r'D:\SH-fullstack-s3')) #
import sys
import os.path as os_path 1、重点:先将项目的根目录设置为常量 -> 项目中的所有目录与文件都应该参照次目录进行导包
BASE_PATH = os.path.dirname(os.path.dirname(__file__))
print(BASE_PATH) # D:/SH-fullstack-s3/day17
sys.path.append(BASE_PATH) # 重点:将项目目录添加至环境变量 2、拼接项目中某一文件或文件夹的绝对路径
file_path = os_path.join(BASE_PATH,'part1','时间模块.py')
print(file_path) # D:/SH-fullstack-s3/day17\part1\时间模块.py
print(os_path.exists(file_path)) # True 3、重点:normcase函数
# 通过normcase来添加项目根目录到环境变量
print(os.path.normcase('c:/windows\\system32\\'))
BASE_PATH = os_path.normcase(os_path.join(__file__,'a','aaa'))
print(BASE_PATH) # d:\sh-fullstack-s3\day17\part1\系统模块.py\a\aaa
sys.path.append(BASE_PATH)

os.getcwd()用法:返回当前的工作目录

三、序列化:将python的字典转化为字符串传递给其他语言或保存

1、json序列化:将json类型的对象与json类型的字符串相互转换

import json
序列化
将json类型的对象与json类型的字符串相互转换,{} 与 [] 嵌套形成的数据(python中建议数据的从{}开始)
dic = {'a': 1, 'b': [1, 2, 3, 4, 5]} json_str = json.dumps(dic)
print(json_str, type(json_str) # {"a": 1, "b": [1, 2, 3, 4, 5]} <class 'str'> with open('', 'w', encoding='utf-8') as w:
json.dump(dic, w) 反序列化
json_str = '''{"a": 1, "b": [1, 2, 3, 4, 5]}'''
new_dic = json.loads(json_str) # json类型的字符串不认''
print(new_dic, type(new_dic)) # {'a': 1, 'b': [1, 2, 3, 4, 5]} <class 'dict'> with open('', 'r', encoding='utf-8') as r:
res = json.load(r)
print(res)

2、pickle:序列化

可以将任意类型对象与字符串进行转换

import pickle
dic = {'a': 1, 'b': [1, 2, 3, 4, 5]}
res = pickle.dumps(dic)
print(res) with open('', 'wb') as w:
pickle.dump(dic, w) print(pickle.loads(res))
with open('', 'rb') as r:
print(pickle.load(r))

day17 十七、时间模块的更多相关文章

  1. Python—day17时间模块、系统模块、递推遍历、序列化

    一.time'''时间戳(timestamp):time.time()延迟线程的运行:time.sleep(secs)(指定时间戳下的)当前时区时间:time.localtime([secs])(指定 ...

  2. python第十七天---时间模块、random模块

    作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time #!usr/bin/env python #-*-coding: ...

  3. python时间模块-time和datetime

    时间模块 python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数:格式化后的时间字符串:时间struct_time 元组. struct_time元组中元素主要包括 ...

  4. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  5. python_way ,day2 字符串,列表,字典,时间模块

    python_way ,day2 字符串,列表,字典,自学时间模块 1.input: 2.0 3.0 区别 2.0中 如果要要用户交互输入字符串: name=raw_input() 如果 name=i ...

  6. python的时间模块

    python有两个重要的时间模块,分别是time和datetime 先看time模块 表示时间的几种方法: 1)时间元组:time.struct_time(tm_year=2016,   tm_mon ...

  7. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  8. 第三十二节,datetime时间模块

    首先要引入import datetime时间模块 datetime.date.today()模块函数 功能:输出系统年月日输出格式 2016-01-26[无参] 使用方法:datetime.date. ...

  9. 【python标准库模块一】时间模块time学习

    本文介绍python的标准库模块time的常见用法 时间模块time 导入时间模块 import time 得到时间戳,这是统计从1970年1月1日0点0分到现在经过了多少秒,一般用于加减法一起用,比 ...

随机推荐

  1. Log4j/Log4j2自定义Appender来实现日志级别计数统计及监控

    一.简述 本文主要讲如何基于Log4j2来实现自定义的Appender.一般用途是用于Log4j2自带的Appender不足以满足我们的需求,或者需要我们对日志进行拦截统计等操作时,需要我们自定义Ap ...

  2. SpringBoot项目获取ApplicationContext来GetBean的方法

    一.简介 我们开发时,经常遇到有些实例需要动态创建,比如有构造函数的组件等.这时候,Spring时我们有ClassPathXmlApplicationContext,但是在Spring Boot时,我 ...

  3. iOS CALayer 绘图模糊有锯齿的解决方案

    在CALayer中绘制图形会出现锯齿和模糊,同样绘图在UIView中就没有问题.经查资料发现不自动处理两倍像素的情况. 解决方案为:设置layer的contentsScale属性为[[UIScreen ...

  4. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  5. Vue2的独立构建与运行时构建的差别

    其实这个问题在你使用vue-cli构建项目的时候是不会出现的,因为你在创建项目的构建过程中已经让你勾选了,然后会写入webpack.config.js中. 这就在这,会让你选择Vue的构建方式. 如果 ...

  6. James 如何作为服务在后台启动

    james 启动后是在前台运行的,就像你跑一个微服务,前台运行显然不合理,关闭ssh后就会断开,所以我们得配置在后台,使用service配置即可 配置 james/bin 下的phoenix.sh,配 ...

  7. Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCompc dtS420 \s2018 s4f doc homepc \s2018 s4 doc compc dtS44\(5 封私信 _ 44 条消息)WebSocket 有没有可能取代 AJAX

    Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ...

  8. URLSearchParams和axios的post请求(防忘记)

    import axios from 'axios' Vue.prototype.axios = axios mounted () { let params = new URLSearchParams( ...

  9. 看雪CTF第十四题

    from z3 import * dest=[] s = Solver() data = [, , , , , , , , , , , , , , , , , , , , , , , , , , , ...

  10. 解决vscode无法提示golang的问题

    https://github.com/Microsoft/vscode-go/wiki/Go-with-VS-Code-FAQ-and-Troubleshooting Q: Auto-completi ...