#-----time模块-----
 print(help(time))  #打印time帮助文档
print(time.time()) #打印时间戳 1569824501.6265268
time.sleep(2)
print(time.perf_counter()) #计时器
print(time.process_time()) #处理时间
print(time.gmtime()) #结构化时间,UTC时间
print(time.localtime()) #本地时间
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) #2019-09-30 14:51:34
print(time.strftime("%Y-%m-%d %X",time.localtime())) #2019-09-30 14:51:34 a = time.strptime("2019-09-30 14:51:34","%Y-%m-%d %H:%M:%S")
#time.struct_time(tm_year=2019, tm_mon=9, tm_mday=30, tm_hour=14, tm_min=51, tm_sec=34, tm_wday=0, tm_yday=273, tm_isdst=-1)
print(a.tm_year) #时间戳表现形式:1、结构化时间 2、格式化时间 print(time.ctime())
print(time.mktime(time.localtime())) #转换为时间戳 1569827234.0
#-----datetime模块-----
print(datetime.datetime.now()) #2019-09-30 15:53:13.628849
#-----random 随机数-----
 print(random.random()) #0~1之间的数
print(random.randint(1,3)) #包括3
print(random.choice(['剪刀','石头','布'])) #取列表中的一个值
print(random.choice(''''''''''))
print(random.randrange(10)) #在0~9 之间取随机数
#-----打乱排序
 iters = [1,2,3,4,5,6,7,8,9]
a = random.shuffle(iters)
print(iters) #[5, 8, 1, 4, 3, 7, 9, 6, 2]
#多个字符串中选取指定数量的字符组成新字符串:
 print(''.join(random.sample(['a','z','d','w','r','w','y','i'],3)))
#-----随机生成5位验证码
 import random

 def v_code():
for i in range(5):
code1 = random.randrange(10) #生成一个随机0-9随机数字
code2 = random.choice(chr(random.randrange(65,91))) #生成一个随机大写字母
code3 = random.choice(chr(random.randrange(97,123))) #生成一个随机小写字母
print(random.choice([code1,code2,code3]),end="")
v_code()
#-----os 模块-----
 import os

 #-----os模块(测试系统为linux环境)-----
print(os.getcwd()) #获取当前目录
print(os.getcwd())
print(os.chdir(r"/")) #修改当前路径
print(os.getcwd())
os.makedirs('dream') #创建一个文件夹
print(os.getcwd())
os.remove('dream//1.py')#删除单个文件1.py
os.removedirs('dream')#只能删除空文件夹,删除dream文件夹
os.mkdir('wx')#生成单个目录
os.mkdir('wx//qq')
os.removedirs('wx//qq')#只能删除空文件夹
os.rmdir('wx') #删除文件夹
os.makedirs('dream//test//rise') #创建对多文件夹
a = os.listdir(r'/home/rise/PycharmProjects/mode1/02部分/week4/day3')
print(a) #列出指定目录下的所有文件和子目录
os.remove('1.py') #只能删除文件,不能删除文件夹
os.rename('1.py','test.py') #重命名文件
print(os.name)#输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
info = os.stat(r"day3.1.txt") #获取文件信息
print(info.st_size) #
print(os.sep) # / #路径分割符
print(os.pathsep) #环境变量风格符
os.system("ls") #执行shell命令
print(os.path.abspath('./day3.1.txt')) #/home绝对路径 /rise/PycharmProjects/mode1/02部分/week4/day3/day3.1.txt
print(os.path.split('/rise/PycharmProjects/mode1/02部分/week4/day3/day3.1.txt')) #路径分割,分割为路径和文件名
#('/rise/PycharmProjects/mode1/02部分/week4/day3', 'day3.1.txt')
print(os.path.dirname('/rise/PycharmProjects/mode1/02部分/week4/day3/day3.1.txt')) #返回绝对路径上一层
print(os.environ) #显示环境变量
print(os.name)#输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
print(os.path.dirname(__file__)) #输出当前文件路径
/home/rise/PycharmProjects/mode1/02部分/week4/day3
#-----sys模块(与Python解释器进行交互)-----
 import sys

 print(sys.argv)
print(sys.exit())
print(sys.path) #搜寻模块路径的列表
print(sys.version)#获取python解释器版本信息
print(sys.platform) #返回操作系统平台名称
#-----hashlib模块-----
 import hashlib

 #----md5
m1 = hashlib.md5()
m1.update("learn english".encode("utf-8")) #编码转换,update 处理数据类型为byte类型
print(m1.hexdigest()) #51e219953881565e51a2c54c4947c3c0 #----sha256
hashlib.sha256
m2 = hashlib.sha256()
m2.update("learn english".encode("utf-8")) #编码转换,update 处理数据类型为byte类型
print(m2.hexdigest()) #c980e31678b5f1ac8ee13ccebf192320a98714600c0e971555c221509e13efe0
#-----logging模块-----
 import logging

 logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a,%d %m %Y %H:%M:%S', filename='text.log', #filename 改变输出方式
filemode='a') logging.debug('debug message1')
logging.info('info message2')
logging.warning('warning message3')
logging.error('error message4')
logging.critical('critical message5')
#-----logging屏幕与文件同时输出-----
 import logging

 logger = logging.getLogger()
#创建一个handler,用于写入日志文件
fh = logging.FileHandler('test.log') #在创建一个handler,用于输出到控制台(屏幕输出)
ch = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter)
ch.setFormatter(formatter) logger.addHandler(fh) #添加文件输出
logger.addHandler(ch) #添加屏幕输出 logger.setLevel(logging.DEBUG) #日志级别 logger.debug('debug message1')
logger.info('info message2')
logger.warning('warning message3')
logger.error('error message4')
logger.critical('critical message5')
#-----configparser(创建配置文件)-----
 import configparser

 config = configparser.ConfigParser()
config["DEFAULT"] = {
"Server":45,
"Compression":"yes",
"ComprewssionLevel":9}
config['dream'] = {
"name":"dream",
"age":21,
"sex":"male"}
config['test'] ={
"ttt":"t",
"aaa":"a",
"bbb":'b'}
with open("config.ini",'w') as configfile:
config.write(configfile)
#-----输出结果(配置文件)
 [DEFAULT]
server = 45
compression = yes
comprewssionlevel = 9 [dream]
name = dream
age = 21
sex = male [test]
ttt = t
aaa = a
bbb = b
#-----读取
 config = configparser.ConfigParser()
config.read("config.ini")
print(config.sections()) #除去默认的,['dream']
print(config.defaults()) #生成有序的字典,打印默认中的信息。OrderedDict([('server', '45'), ('compression', 'yes'), ('comprewssionlevel', '9')])
print(config.default_section) #DEFAULT
print(config['DEFAULT']['server']) #类似字典取法,45 for key in config["dream"]:
print(key,end=" ")
#除打印需求的,同时打印DEFAULT(默认的)name age sex server compression comprewssionlevel
#-----修改
 config = configparser.ConfigParser()
config.read("config.ini") #读取文件
config.remove_section('dream') #删除分组['dream']的配置文件
config.write(open("config1.ini",'w')) #删除后另存为config1文件 config.read("config1.ini") #读取文件
ter1 = config.has_section('dream')
print(ter1) #检查是否在,返回False config.remove_option('test','ttt') #删除分组中的部分
config.write(open('config2.ini','w')) config.read('config2.ini')
ter2 = config.has_option('test','ttt')
print(ter2) #False config.add_section("h1")
config.write(open("config4.ini",'w')) #生成分组[h1] config.read("config2.ini")
config.set('test','aaa','a1') #修改['h1']['aaa'] 相关的值,将'a'改为'a1'
config.write(open("config3.ini","w"))
#-----re正则表达式:匹配字符串-----
#正则表达式的方法:

    1、re.findall() :所有结果都返回到一个列表里
2、re.search() :返回对象(object),对象调用group()返回结果
3、match() :只在字符串开始匹配
4、re.split() :分割
5、re.sub() :替换
6、re.compile : 共用规则,多次调用规则进行匹配
#string(字符串)提供匹配方法是完全匹配
 import re

 #源字符 . ^ $ * + ? {} ( ) \

 #通配符 . (点代指任意一个字符,换行符\n ,无法匹配到)
ret1 = re.findall("w..l","hello world")
print(ret1) # ^ (以最开始的位置匹配)
ret2 = re.findall('^a..n','adfnddfdafffn')
print(ret2) # $ (以结尾的位置匹配)
ret3 = re.findall('a..n$','addnadfddfkdafdn')
print(ret3) # * (重复匹配)[0,+00]
ret4 = re.findall('abc*','abcccccc')
print(ret4)#贪婪匹配方法['abcccccc'] # +(重复匹配)[1,+00]
ret5 = re.findall('abc+','abcccccf')
print(ret5) #['abccccc'] # ? 惰性匹配[0,1]
ret6 = re.findall('abc?','abccabdcccc')
print(ret6)# [0,1] # {}
ret7 = re.findall('a{5}b',"eaaaaaabbbcdfgd")
print(ret7)
ret8 = re.findall('a{1,3}b',"eaaaaaabbbcdfgd")
print(ret8) # []
ret9 = re.findall('a[bc]d','abdcacdabcd')
print(ret9) #[bc] 之间的关系为或的关系 ret10 = re.findall('abc*?','abcdffgabccgh')
print(ret10) # ? 惰性匹配 #[^a-z] 取反
ret = re.findall("[^a-z]","123435fsfafdfsd")
print(ret) #['1', '2', '3', '4', '3', '5'] #------ [] 字符集: 取消元字符的特殊功能(\ ^ -) ret = re.findall('a[bc,*]d','abdcacdabca*d')
print(ret) #['abd', 'acd', 'a*d'] ret = re.findall('[1-9,a-z,A-Z]',"12wff7ofWHfe")
print(ret) #['1', '2', 'w', 'f', 'f', '7', 'o', 'f', 'W', 'H', 'f', 'e'] # \ (1、反斜杠后面的元字符去掉特殊功能 2、反斜杠后面跟普通字符实现特殊功能)
ret = re.findall("\d{11}","asda1234454676677dd")
print(ret) #['12344546766'] #\w 匹配任何字母数字字符
ret = re.findall("\w","asda1237d")
print(ret) #['a', 's', 'd', 'a', '1', '2', '3', '7', 'd']
ret1 = re.findall("\w+","i am a boy")
print(ret1) #['i', 'am', 'a', 'boy'] #\b 匹配特殊字符边界(空格或者特殊字符$)
ret2 = re.findall(r"i\b","i am a boy,i$")
print(ret2) #['i', 'i'] #-----search 匹配出第一个满条件的结果
ret = re.search("ab","adfdfdababdab")
print(ret.group()) # r"" 匹配条件加r(原生字符)
a = re.findall(r"\bblow","blow")
print(a)
b = re.findall("\\\\","\\\\")
b1 = re.findall(r"\\","\\\\\\")
print(b,b1) # () |
print(re.search("(ab)+","ababdfdf").group())
print(re.search("(ab)|3","ababd3fdf").group()) # ?P<id>\d{3} (分组)
print(re.search("(?P<id>\d{3})/(?P<name>\w{3})","12324/csvcs239").group()) #324/csv print(re.match("abc","abcweabc").group()) #从字符开始匹配
ret = re.split("[j,d]","sdswkdldbds") #分割
print(ret) #['s', 'swk', 'l', 'b', 's']
ret = re.sub("a","cv","avbadvdve") #替换
print(ret) obj = re.compile(r"\.com") #re.compile内添加规则
ret1 = obj.findall("www.baidu.com")
print(ret1)
												

time,datetime,random,os,sys,hashlib,logging,configparser,re模块的更多相关文章

  1. CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】

    import time import datetime import os import sys import random import hashlib time模块 时间戳(Timestamp) ...

  2. Python常用模块(time, datetime, random, os, sys, hashlib)

    time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) :         通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...

  3. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块)   一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...

  4. 常用模块之 time,datetime,random,os,sys

    time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“ty ...

  5. Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)

    一. logging(日志模块) 二 .re模块 三. 时间模块 四. random模块 五. os模块 六. sys模块 七. shutil模块 八. 序列化模块(json&pickle&a ...

  6. python基础语法11 内置模块time,datatime,random,os,sys,hashlib模块

    time模块 在python的三种时间表现形式: 1.时间戳: 给电脑看的. - 自1970-01-01 00:00:00到当前时间,按秒计算,计算了多少秒. 2.格式化时间(Format Strin ...

  7. python笔记-6(import导入、time/datetime/random/os/sys模块)

    一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...

  8. Day 17 time,datetime,random,os,sys,json,pickle

    time模块 1.作用:打印时间,需要时间的地方,暂停程序的功能 时间戳形式 time.time() # 1560129555.4663873(python中从1970年开始计算过去了多少秒) 格式化 ...

  9. python之常见模块(time,datetime,random,os,sys,json,pickle)

    目录 time 为什么要有time模块,time模块有什么用?(自己总结) 1. 记录某一项操作的时间 2. 让某一块代码逻辑延迟执行 时间的形式 时间戳形式 格式化时间 结构化时间 时间转化 总结: ...

随机推荐

  1. Java实现MapReduce Wordcount案例

    先改pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww ...

  2. 22.Java基础_StringBuilder类

    String类对象的拼接操作:执行到s+="world"语句时,常量池会先创建"world"对象,再去创建"helloworld"对象,最后 ...

  3. 【cf343】D. Water Tree(dfs序+线段树)

    传送门 题意: 给出一个以\(1\)为根的有根树,起始每个结点都为\(0\),现在有三种操作: 1.将\(v\)及\(v\)的子树都置为\(1\): 2.将\(v\)及其所有的祖先都置为\(0\): ...

  4. Html学习之七(CSS选择器的使用--基础选择器优先级问题)

    二.基础选择器的综合使用 优先级顺序:id选择器>class选择器>元素选择器.也就是说,如果这三种选择器同时为某一个元素设定样式,那么冲突的部分按优先级的顺序依次决定. <!DOC ...

  5. pycharm 远程连接

    1.连接远程项目 2.连接远程服务器

  6. wafer2-nodejs 本地部署服务器

    友情提示:假设你已经部署好了腾讯云微信小程序服务,如果没有,就不用往下看了,果断选云开发. ------------------------------------------------------ ...

  7. 9.28 csp-s模拟测试54 x+y+z

    T1 x 求出每个数的质因数,并查集维护因子相同的数,最后看一共有多少个联通块,$ans=2^{cnt}-2$ 但是直接分解会$T$,埃筛是个很好的选择,或者利用每个数最多只会有1个大于$\sqrt{ ...

  8. linux 文件详细信息

    权限列: 权限列中一共 10 个字符,第一个字符代表文件类型,后边9 个字符 3 个为一组表示不同用户的权限: 第一字符表示文件类型: [d]:目录 [-]:普通文件 [l]:连接档 [b]:设备文件 ...

  9. javascript中的发布订阅模式与观察者模式

    这里了解一下JavaScript中的发布订阅模式和观察者模式,观察者模式是24种基础设计模式之一. 设计模式的背景 设计模式并非是软件开发的专业术语,实际上设计模式最早诞生于建筑学. 设计模式的定义是 ...

  10. opencv 图像旋转

    理论 http://www.cnblogs.com/wangguchangqing/p/4045150.html 翻开任意一本图像处理的书,都会讲到图像的几何变换,这里面包括:仿射变换(affine ...