27   time  os  sys  模块

time 模块

一.表示时间的三种方式  时间戳(timestamp), 元组(struct_time),格式化时间字符串(Format string)
小结:时间戳是计算机能够识别的时间;
时间字符串是人能够看懂的时间;
元组则是用来操作时间的
(一).时间戳(timestamp): 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。 运行“type(time.time())”,返回的是float类型。
(二).元组(struct_time): struct_time元组共有9个元素
索引(Index)属性(Attribute)值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为0
(三).格式化时间字符串(Format string) "1999-12-06"
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2018-07-10 21:04:30
print(time.strftime("%x %X")) # 07/10/18 21:09:39
print(time.strftime("%Y-%m-%d %X")) # 2018-07-10 21:03:18
1.python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身 二.三种格式之前的转化
1.格式化转结构化 # time.strptime(时间字符串,字符串对应格式)
import time
ft=time.strftime("%Y-%m-%d %H:%M:%S")
struct_time=time.strptime(ft,"%Y-%m-%d %H:%M:%S")
print(struct_time)
2.结构化时间转时间戳 # time.mktime(结构化时间)
import time
ft=time.strftime("%Y-%m-%d %H:%M:%S")
struct_time=time.strptime(ft,"%Y-%m-%d %H:%M:%S")
print(struct_time)
time_stamp=time.mktime(struct_time)
print(time_stamp)
3.时间戳转结构化 # time.localtime(时间戳)
import time
time_stamp=time.time()
struct_time=time.localtime(time_stamp)
print(struct_time)
4.结构化转格式化 # time.strftime( 格式定义,结构化时间)
import time
time_stamp=time.time()
struct_time=time.localtime(time_stamp)
print(struct_time)
ft=time.strftime("%Y-%m-%d %H:%M:%S",struct_time)
print(ft)
练习
申请 博客园的时间 2017年6月7日 18:50:50
利用time模块,距现在 过了多少年,多个月,多少日,多少小时,多少分多少秒.
import time
time_old=time.mktime(time.strptime("2017-03-16 18:06:07","%Y-%m-%d %H:%M:%S"))
# print(time.strptime("2017-03-16 18:06:07","%Y-%m-%d %H:%M:%S"))
time_now=time.mktime(time.strptime("2018-07-10 18:06:07","%Y-%m-%d %H:%M:%S"))
d_time=time_now-time_old
struct_time=time.localtime(d_time)
print(struct_time)
print("过去了%d年%d月%d天%d小时%d分钟%d秒" %(struct_time.tm_year-1970,struct_time.tm_mon-1,struct_time.tm_mday-1,
struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec))
三.特殊转化
1.时间戳转格式化时间字符串
ft=time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串 结果 星期 月份 日 时 分 秒 年
2.结构化时间转特殊格式化时间
ft=time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串 结果 星期 月份 日 时 分 秒 年 OS模块 与操作系统交互的一个接口
一.相关定义
1,路径:
(1)相对路径 : 相对于当前文件所在的位置 (
从当前文件夹找到另一个文件夹中的内容 往外走 ../ ;eg: ..(08)/..(a)/b
从当前往内走 : 直接加文件夹名字 f/文件夹名
同级 : f/文件名/文件名
(2)绝对路径 : 从磁盘根目录寻找文件 ( C:/// 或 http:/// )
2.文件名 名称+ " .py "
3.工作目录 ,父级目录(当前目录): 本文件所在的文件夹的绝对路径
二.执行当前这个py文件的工作目录相关的工作路径
*print(os.getcwd()) # C:\课后作业\27 获取当前文件的工作目录
print(os.chdir()) # 改变当前脚本工作目录
print(os.curdir) # . 返回当前目录
print(os.pardir) # .. 返回上上级目录
三.和文件夹相关
import os
# os.mkdir("文件夹1") # 生成单级目录
# os.mkdir("文件夹1\文件2") # 文件已存在可以创建子目录
# os.makedirs("dirname1\\dirname2/dirname3\\dirname4") #可生成多层递归目录
# os.rmdir("文件夹1/文件夹2") # 删除文件夹2 删除单级空目录,若目录不为空则无法删除, ( 只能是文件夹,不能是文件) 删除文件夹2
# os.removedirs("dirname1\\dirname2/dirname3\\dirname4") # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
print(os.listdir("C:\课后作业\\27")) #['27练习.py', 'dirname.py', 'dirname1', '文件夹1'] (仅限第一级)
print(os.listdir("C:\课后作业\\27\\dirname1")) # ['dirname2']
四.和文件相关
import os
# os.remove("文件夹1\文件一.py") # 删除文件夹1下的文件一,py 只能删除文件,不能删除文件夹
# os.remove("文件夹2") # 拒绝访文件夹2
# os.rename('文件夹2\文件6.py',"文件夹2\文件8.py") #重命名可以作用于文件夹和文件
os.rename("文件夹2",'文件夹6') # 更换成文件夹6
五.和操作系统差异相关
如果项目凌驾于不同的操作系统,可能需要 转化
# win: E:\sylar\python_workspace\day27
# linux: E:/sylar/python_workspace/day27
import os
1.print(os.sep) # win : \ Linux下为"/"
2. print(os.linesep) # win : \t\n Linux下为"\n"
3. print(os.pathsep) # win : ; Linux下为:
4.print(os.name) # win : nt Linux->'posix'
六.执行系统命令相关 .如果项目凌驾于不同的操作系统,可能需要
import os
1.os.system('dir') # (exec) 没有返回值
2.ret=os.popen("dir").read() # (eval ) 有返回值
print(ret)
3.print(os.environ) #获取系统环境变量
七.path系列 与路径相关
import os
print(os.path.abspath("dirname1")) # C:\课后作业\27\dirname1 通过文件名获取文件的绝对路径.
print(os.path.split("C:\课后作业\\27\dirname1" )) #('C:\\课后作业\\27', 'dirname1') 得到 元组(当前目录,文件名)
print(os.path.dirname('C:\课后作业\\27\dirname1')) # C:\课后作业\27 通过绝对路径获取工作目录
print(os.path.basename("C:\课后作业\\27\dirname1")) #dirname1 通过绝对路径返回文件名 返回path最后的文件名。
# 如果path以/或\结尾,那么就会返回空值,即
print(os.path.exists("C:\课后作业\\27\dirname1")) #True 如果path存在,返回True;如果path不存在,返回False
print(os.path.isabs("C:\课后作业\\27\dirname1")) #True
print(os.path.isfile("C:\课后作业\\27\dirname1")) # False 如果path是一个存在的文件,返回True。否则返回False
print(os.path.isdir("C:\课后作业\\27\dirname1")) # True 如果path是一个存在的目录,则返回True。否则返回False
print(os.path.join("C:\课后作业\\27\\dirname1","27练习.py","文件夹6")) #C:\课后作业\27\dirname1\27练习.py\文件夹6
print(os.path.getatime("C:\课后作业\\27\dirname1")) #1531271740.862077 返回path所指向的文件或者目录的最后访问时间
print(os.path.getmtime("C:\课后作业\\27\dirname1")) #1531271740.862077 返回path所指向的文件或者目录的最后修改时间
print(os.path.getsize("C:\课后作业\\27\\27练习.py")) # 8731 字节
os.stat('path/filename') 获取文件/目录信息 的结构说明
stat 结构: st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,
在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。 sys 模块
import sys
1.print(sys.platform) #win32 操作系统的名字
2.print(sys.version) #3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] Py解释器的版本.
3.print(sys.path) #模块查询的顺序
4.print(sys.exit()) #结束python解释器 退出程序,正常退出时exit(0),错误退出sys.exit(1)
5.print(sys.argv) # ['C:/课后作业/27/27练习.py'] 列表里面是路径 第一个元素是程序本身路径
sys.argv=['C:/课后作业/27/27练习.py',"alex","alex3714"]
if sys.argv[1] == 'alex' and sys.argv[2] =='alex3714':
print('启动mysql')

python全栈开发 * 27知识点汇总 * 180710的更多相关文章

  1. python全栈开发 * 10知识点汇总 * 180612

    10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...

  2. python全栈开发 * 01知识点汇总 * 180530

    一 python简介. 1.创始人:  吉多 .范罗苏姆  \   (Guido van Rossum). 2.时间  :  1989年. 3.主要应用领域  :  云计算 \  WEB开发  \   ...

  3. python全栈开发 * 32知识点汇总 * 180717

    32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...

  4. python全栈开发 * 26知识点汇总 * 180709

    26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...

  5. python全栈开发 * 12 知识点汇总 * 180530

    12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...

  6. python全栈开发 * 36知识点汇总 * 180721

    36 操作系统的发展史 进程一.手工操作--穿孔卡片 1.内容: 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制 台开关启动程序针对 ...

  7. python全栈开发 * 31知识点汇总 * 180716

    31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 ...

  8. python全栈开发 * 24 知识点汇总 * 180705

    24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...

  9. python全栈开发 * 14 知识点汇总 * 180530

    14 生成器表达式 内置函数# 一.迭代器 (补充)# 1.如何判断迭代对象,迭代器# (1).dir(obj)检测对象有没有iter方法,然后it=obj.__iter__() 获取迭代器 , it ...

随机推荐

  1. 【算法随记】Canny边缘检测算法实现和优化分析。

    以前的博文大部分都写的非常详细,有很多分析过程,不过写起来确实很累人,一般一篇好的文章要整理个三四天,但是,时间越来越紧张,后续的一些算法可能就以随记的方式,把实现过程的一些比较容易出错和有价值的细节 ...

  2. grid - 通过网格线名称设置网格项目位置

    使用网格线名称设置网格项目位置和使用网格线号码设置网格项目位置类似. 1.引用网格线名称的时候不应该带方括号 <view class="grid"> <view ...

  3. C#之值类型和引用类型

    本文意在巩固基础知识,并不是对其进行深入剖析,还望理解.本文是对此项知识的整理文,有些内容来源于网络,其他为博主原创,所以难免会有一些小得瑕疵,敬请谅解.所有示例均是博主测试过的,如有转载请标明出处, ...

  4. Android 网络编程之最新OKHTTP:3.9.0

    本节前言 本来是想围绕着HttpClient讲解的,后来发先Android4.4之后okhttp代替了hc,所以将不再讲解hc okhttp的简单使用,主要包含: 一般的get请求 一般的post请求 ...

  5. 关于asyncio知识(一)

    一.介绍 asyncio 是python3.4 引入的一个新的并发模块,主要通过使用coroutines 和 futures 来让我们更容易的去实现异步的功能,并且几乎和写同步代码一样的写代码,还没有 ...

  6. jQuery(三) javascript跨域问题(JSONP解决)

    加油~ --WH 一.什么是javascript跨域问题? 域:服务器域名,唯一标识(协议,域名,端口)必须保证一致,说明域相同 跨域:在一个服务器上,去访问另一个服务器上,并且得到另一个服务器返回回 ...

  7. python爬虫高级功能

    上一篇文章中我们介绍了爬虫的实现,及爬虫爬取数据的功能,这里会遇到几个问题,比方站点中robots.txt文件,里面有禁止爬取的URL.还有爬虫是否支持代理功能.及有些站点对爬虫的风控措施.设计的爬虫 ...

  8. ffmpeg安装步骤

    首先要安装各种解码器 1.lame lame-3.99.5.tar.gz Url:http://sourceforge.net/project/showfiles.php?group_id=290&a ...

  9. 大数据:Parquet文件存储格式

    一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...

  10. Netty 学习笔记(1)通信原理

    前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始.   Netty 的通信原理 Netty 底层 ...