time,sys,os模块
1.time模块
a:结构化时间:struct_time:通过time.localtime获取到一个时间对象,通过这个对象得到对象属性
****localtime()如果没有参数,默认返回是一个时间对象,如果有参数,必须为数字类型,
obj = time.localtime()
print(obj)
print(obj.tm_year,end=" ")
print(obj.tm_mon,end=" ")
print(obj.tm_hour,end=" ")
print(obj.tm_min,end=" ")
#输出结果:
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=15, tm_min=3, tm_sec=17, tm_wday=2, tm_yday=220, tm_isdst=0) 2018 8 15 3
#从上图可以看出:结构化输出结果有索引值:索引对应内容如下表:
索引(时间对象) | 属性(attribute) | 值(value) |
0 | 年time_year | 四位数 |
1 | 月time_mon | 1~12 |
2 | 日time_mday | 1~31 |
3 | 时time_hour | 0~23 |
4 | 分time_min | 0~59 |
5 | 秒time_sec | 0~59 |
6 | 星期几time_wday | 索引从0开始 |
7 | 一种的第几天time_yday | 1~366 |
b:格式化时间:strftime,把时间转成字符串格式,对象:人,可以接收结构化时间对象;strftime(format,t)
格式化中format的符号意义:
%Y|%y | 四位数|两位数表示年份 |
%m | 月份 |
%d | 天 |
%H | 24小时制小时数 |
%I | 12小时制小时 |
%M | 分钟数 |
%S | 秒 |
%a | 简化星期名称(wed) |
%A | 完整星期名称 |
%b | 简化月份名 |
%B | 完整月份名 |
%c | 日期加时间表示 |
%j | 年内的一天 |
%p | 查看上午还是下午 |
%U | 一年中的星期数,0~53 |
%w | 星期0~6,星期天表示开始 |
%x | 本地相应的日期表示 |
%X | 本地相应的时间显示 |
%z | 当前时区的名称 |
%% | % |
c:时间戳时间Timestamp
1)学名格林威治,类型为float类型;对象:机器
格式:time.time()获取当前时间时间戳;
2.os模块
a:os模块是和操作系统交互的,而sys模块是和Python解释器交互的;
b:和目录相关的
1)os.getcwd()在什么地方执行,得到值也就是路径也会随着改变;
2)os.chdir()强制修改路径,配合getcwd使用就会一直得到你想要的路径;
3)os.curdir()返回当前目录:('.')
4)os.pardir()返回当前目录的父目录字符串名('..')
c;创建文件夹/删除文件夹
1)os.mkdir('文件名')在当前路径下创建一个新文件夹
2)os.mkedirs('多级文件夹名')用/分隔符;当前目录下创建文件夹组,父目录为第一位;
如果重复执行会报一个文件夹已存在的错,这时要加上一个参数,exist_ok=True,
3)os.rmdir()不能删除一个非空的文件夹;
4)os.removedirs()递归向上,知道要删除的目录有文件了停下;把最后一级的文件先删掉;
5)os.listdir(文件路径)得到当前任意文件下一级的所有文件和文件夹;copy path
d:几个小工具:
1)os.stat(path)查看文件当前的状态,有两个属性可以用到,st_atime上一次访问时间,和st_mtime最后一次修改时间
2)os.sep查看当前你所在的操作系统分隔符; win(\) mac和Linux(/)
3)os.name查看当前字符串指示使用的平台, win ->'nt' linux ->'posix'
一段跨平台的小思想:
base_path = 'D:\sylar\python_workspace'
s = 'day25'
print(os.sep.join([base_path,s])) #os.sep表示系统的分割符,把两个文件路径拼接,然后操作;
e:os.path系列
1)os.path.abspath(path),有返回值,返回path的当前系统的格式,绝对路径;
2)os.path.split(path),有返回值,返回类型tuple,会自动帮你把最后一个元素提取出来;
3)os.path.dirname(path),有返回值,字符串类型,会自动取split元组中的第一位; os.path.basename()取第二位
4)os.path.isfile(path),返回True或False,判断是否是文件
6)os.path.isdir(path),判断是否是文件夹
7)os.path.join(path)根据你的系统自动添加成规范格式;
8)os.path.getsize(文件)计算文件的大小,文件夹大小4096定值;
import sys
import os
base_path = os.path.dirname(os.path.dirname(__file__))
#往上找两级(自动除去路径最后一位)
course = '/'.join([base_path,'db','course_data'])
ident = '/'.join([base_path,'db','iden_data'])
#这是解决文件路径问题的
思想:建立一个配置文件,先用__file__找出当前目录的路径,
然后用dirname取到共同目录下;在拼接路径;
3.sys模块
a:sys.argv #执行文件的时候,写在Python命令后面的第一个值,
之后的元素,在执行Python的时候 后面可以写多个值,都会依次添加到argv的列表中
b:sys.exit(n) #退出程序,正常退出为0,异常退出n为1
c:sys.path #返回模块的搜索路径,初始化时使用Pythonpath环境变量的值;
time,sys,os模块的更多相关文章
- sys,os,模块-正则表达式
# *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...
- day2_python的数据类型,sys,os模块,编码解码,列表,字典
今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...
- time random sys os 模块
时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 ...
- python 常用模块(一): random , time , sys , os模块部分知识.
1.常用模块:(1)collectiaons模块 (2)与时间相关 time模块 (3)random模块 (4)os模块 (5)sys模块 (6) 序列化模块: json , pickle 2 ...
- time,sys,os 模块
import time# 时间戳时间,格林威治时间,float数据类型 给机器用的 # 英国伦敦的时间 1970.1.1 0:0:0 # 北京时间 1970.1.1 8:0:0 # 153369312 ...
- time | sys | os 模块,递归删除文件,项目分析
一,复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块 ...
- day18 python模块 random time sys os模块
day18 python 一.random模块 取随机整数 import random print(random.randint(1,2)) #顾头顾尾 p ...
- python学习Day27--time模块、sys模块、os模块和序列化模块
[知识点] 1.时间模块: (1)时间戳时间,格林威治时间,float数据类型 英国伦敦的时间:1970.1.1 0:0:0 北京时间:1970.1.1 8:0:0 (2)结构化时间, ...
- sys模块和os模块,利用sys模块生成进度条
sys模块import sysprint(sys.argv)#sys.exit(0) #退出程序,正常退出exit(0)print(sys.version) #获取 ...
随机推荐
- 操作系统(3)实验相关原理——bootloader启动uCore
x86启动顺序 CS+EIP决定启动地址. CS部分后面又4个0,相当于是左移了4位.总之就是要让CS左移4位之后加上EIP来得到要跳转的地址. 0x7c00地方开始的512字节的内容就是bootlo ...
- Java多线程学习——例子:模拟电影院抢座位
Cinema——List<Integer>数据结构存储电影院座位 public class Cinema{ private List<Integer> seats; //剩余座 ...
- 【Linux开发】为qt-embedded添加jpeg库的交叉编译方法for arm
看了一个文章: =====================================谢论坛内各位的帮助,我的qt/e2.3.10和qtopia2.1.1终于全部编译通过. 下面是jpeg和uui ...
- 六、Zabbix-自动分组
一.配置Zabbix server 1.创建主机组 (2)配置—>主机群组—>创建主机群组 (2)Next Step (3)可以看到新添加的主机组 2.添加自动分组动作 配置—>动作 ...
- 把对像生成json并存储到文件
1.创建实体对像json import com.alibaba.fastjson.annotation.JSONField; import java.util.Date; public class S ...
- oracle 实现mysql find_set_in函数
create or replace FUNCTION F_FIND_IN_SET(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 := ',' ...
- RabbitMq学习4-发布/订阅(Publish/Subscribe)
一.发布/订阅 分发一个消息给多个消费者(consumers).这种模式被称为“发布/订阅”. 为了描述这种模式,我们将会构建一个简单的日志系统.它包括两个程序——第一个程序负责发送日志消息,第二个程 ...
- kotlin学习(10)反射
反射,简单来说,是一种在运行时动态地访问对象属性和方法的方式,而不需要事先确定这些属性是什么. Kotlin反射API:KClass.KCallable.KFunction.KPropperty KC ...
- 【LGR-063】洛谷11月月赛 I & MtOI2019 Ex Div.2 (A-C)
[MtOI2019]黑蚊子多 : 按题意模拟 #include<iostream> #include<cstdio> #include<cstring> using ...
- 细说C#的ReferenceEquals,Equals和==比较运算符
C# 中有两种不同的相等:引用相等和值相等.值相等是大家普遍理解的意义上的相等:它意味着两个对象包含相同的值.例如,两个值为 2 的整数具有值相等性.引用相等意味着要比较的不是两个对象,而是两个对象引 ...