#-----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. Html学习之十九(表格与表单学习--邮箱注册页面设计)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. JAVA字符串转换整数

    public class compint { /** * @param args */ public static void main(String[] args) { // TODO Auto-ge ...

  3. hdu 6495 dp

    http://acm.hdu.edu.cn/showproblem.php?pid=6495 题意 有n个挑战(1e3),假如接受,在挑战之前体力x会变成min(x,\(b[i]\)),然后会减去a[ ...

  4. SSM配置动态数据源

    多数据源配置主要涉及自定义类(DataSource注解类.DataSourceAspect切面类,动态数据源接口实现类.以及数据源字符串线程保存类),pom.xml文件.applicationCont ...

  5. CSP-J&S2019第一轮认证游记

    Day-0 晚上和高一大佬BH聊了聊,感觉大佬第一次参加比赛毕竟还是有点慌QAQ,毕竟我这么菜的人都没慌过. 做了一套模拟题,用45分钟瞎打的提高组卷子得了62分,还不错,正式比赛用2个小时好好答的话 ...

  6. Visual Studio 2015 Tools for Unity使用基础

    Unity4.x编辑器侧 具体版本号:Visual Studio 2015 Tools for Unity 3.7.0.1 该插件在:Microsoft Visual Studio Tools for ...

  7. 用 Raspberry Pi 架设加密 DNS 客户端

    Cloudflare 宣布使用 1.1.1.1 作为 DNS,并且强调隐私保护.由于 Cloudflare DNS 支持 DNS-over-TLS 和 DNS-over-HTTPS,这使得加密 DNS ...

  8. MyBatis 获取插入记录的 id

    现在的项目改用 Guns 了,也是一个很不错的框架,用起来也感觉很不错,上手也挺方便的.毕竟对于只是应用层面的知识,也基本上就是看看手册,熟悉熟悉就可以轻松上手了.如果是想要深入,或者刨根问底,那么就 ...

  9. ICP&TPS:最近邻

    经过了一段时间的研bai究gei...终于可以偷得几天闲了. 这里来补个档. 无论是ICP还是TPS,缺乏锚点的前提下.你总是要通过找另一个曲面的最近的点来实现你的work beimat:点数*3,f ...

  10. 数据迁移最快方式,多线程并行执行 Sql插入

    前言: 由于系统升级,新开发的系统对数据验证,及数据关联做了很多优化,现需要将原历史版本的数据迁移到新系统中:原数据库大约有 1千多万数据,大约 50个表. 历史数据库命名为:A. 新系统库暂命名为 ...