#-----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面试题-基础篇二(干货)

    11.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用 ...

  2. mysql high severity error 缺少根元素

    high severity error 缺少根元素: C:\Users\cf.yu\AppData\Roaming\Oracle\MySQL Notifier里的settings.config.删除他 ...

  3. python27期JavaScript:

    JavaScript:(简称“JS”) 是一种轻量级的编程语言(ECMAscript5或6)是一种解释性脚本语言(代码不进行预编译)主要用来向HTML页面添加交互行为JavaScript 是互联网上最 ...

  4. jQuery中Ajax(三)

    1. jQuery.ajaxSetup([options]), 设置全局 AJAX 默认选项. 参数见 'jQuery.ajax(url,[settings])' 说明. 2. jQuery.ajax ...

  5. 2019 SDN上机第三次作业

    2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 ...

  6. goroutine使用

    Goroutine是建立在线程之上的轻量级的抽象.它允许我们以非常低的代价在同一个地址空间中并行地执行多个函数或者方法.相比于线程,它的创建和销毁的代价要小很多,并且它的调度是独立于线程的.在gola ...

  7. map 基本使用

    package main import "fmt" func main(){ //定义一个map变量,类型为map[int]string,如果使用map一定初始化,make分配空间 ...

  8. sublime3配置

    1.sunblim3配置 一旦配置好了,如果换了一台电脑那直接将C:\Users\djx\AppData\Roaming\Sublime Text 3\Packages\User文件夹拷贝到新下载的s ...

  9. weblogic 12c 安装与下载

    转   一.WebLogic的介绍     WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本Web ...

  10. 1+x 证书 Web 前端开发 MySQL 知识点梳理

    官方QQ群 1+x 证书 Web 前端开发 MySQL 知识点梳理 http://blog.zh66.club/index.php/archives/199/