Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则
时间模块
import time
print(time.time()) # 当前时间戳
# time.sleep(1) # 时间延迟1秒
print(time.clock()) # CPU执行时间
print(time.gmtime()) # 结构化时间
print(time.localtime()) # 取得电脑时间
print(time.strftime("%X", time.localtime()))
print(time.ctime())
print(time.mktime(time.localtime()))
print("++++++++++++++++++++++++")
import datetime
print(datetime.datetime.now())
随机数模块
# 随机数模块 Random
import random
print(random.random())
print(random.randint(1, 8))
print(random.choice("hello"))
print(random.choice([1, "", [1, 2, 3]]))
print(random.sample([1, 2, 3, 4, 5, 6], 2))
print(random.randrange(0,10))
sys模块
import sys print(sys.argv) # 退出程序
# sys.exit(0) # if sys.argv[1] == 'post':
# print('post') # 获得模块的搜索路径 初始化pythonpath的环境变量值
print(sys.path)
# 获取python解释器的版本信息
print(sys.version)
# 返回系统平台名称
print(sys.platform)
os模块
import os # 获得当前文件路径
print(os.getcwd()) # 改变当前的工作目录 生成新文件选择地址
os.chdir(r'C:\python') print(os.getcwd()) # 当前路径 .表示当前路径 .. 表示上层目录
print(os.curdir)
print(os.pardir) # 可生成多层递归目录 文件夹
os.makedirs('abc\\wjw\\wjw2') # 删除文件夹 只删除空文件夹
os.removedirs('abc\\wjw\\wjw2') # 生成一个文件夹
os.mkdir('wjw') # 删除单级空目录
os.rmdir('wjw') # 列出指定文件的所有文件和目录,包含隐藏文件
print(os.listdir(r'F:\联想第二次实训')) # 删除文件 不能删除文件夹
os.remove('123.txt') # 重命名
os.rename("456.txt", "741.txt") # (oldname,newname)
loggin模块
# 日志模块
import logging
logging.debug('debug')
logging.info('info')
logging.warning('warning') # 默认出现显示
logging.error('error')
logging.critical('critical')
json模块
# json模块
# import json
#
# dic = {'name': 'wjw', 'age': '18', 'sex': 'nan'}
#
# data = json.dumps(dic)
#
# f = open('text', 'w')
# f.write(data)
# f.close() print("**********************************") # import json
#
#
# def foo():
# print("ok")
#
#
# data = json.dumps(foo) import json dic = {'name': 'wjw', 'age': '', 'sex': 'nan'} # data = json.dumps(dic) f = open('text', 'w') json.dump(dic,f) f.close()
hashlib 加密模块
import hashlib
# 加密模块
m=hashlib.md5()
m.update("abc".encode("utf8"))
print(m.hexdigest())
m.update('wjw'.encode("utf8"))
print(m.hexdigest())
configparser模块
import configparser
config = configparser.ConfigParser()
config['wjw'] = {'name': 'wangjiawei', 'age': '', 'sex': 'nan'}
config['dizhi'] = {'name': 'shandongsheng', 'age': '256hao', 'sex': 'weifang'}
with open("example.ini", 'w') as configfile:
config.write(configfile)
# 取文件内容
print(config['wjw']['name'])
# 判断文件中是否有wjw块
print('dizhi' in config)
print("***************")
for i in config['wjw']:
print(i)
print("***************")
# z={'name':'wjw','age':'18'}
#
# for i,y in z.items():
# print(i)
# print(y)
pickle模块
import pickle def foo():
print("ok") data = pickle.dumps(foo) f = open('ptext', 'wb')
f.write(data)
f.close() print('+++++++++++++++++++')
import pickle
f = open('ptext', 'rb')
data = f.read()
data = pickle.loads(data)
data()
f.close()
# 没内存指向,所以会报错
正则表达式 模块
# 正则表达式
# 贪婪匹配 有多的不按照少的匹配 import re # print(help(re)) ret = re.findall('wjw', 'qwertyuiowjwdfghjklxcvbnmwertyui')
print(ret) # . 通配符 代指任意一个字符,只匹配一个字符 不能代指换行符
ret = re.findall('w.w', 'qwewww wwrtywkwuiowjwdfghjklxcvbnmwertyui')
print(ret) # ^ 尖角符 只在开始匹配
ret = re.findall('^w..w', 'wqywertywerwuiowjwdfghjklxcvbnmwertyui')
print(ret) # $ 结束符 在结束匹配
ret = re.findall('w..w$', 'wqywertywerwuiowjwdfghjklxcvbnmwertyweiw')
print(ret) # * + ? {}
# * 重复匹配 匹配前一个字符个数 0~多次
ret = re.findall('.*', 'wqywwwwertywerwwuioywwwejwdfghiowjklxcvbnmwertyweiw')
print(ret) # + 重复 1到无穷次 不能为0次
ret = re.findall('qy+', 'wqywertqyyyywerwuiowjwdfqyyghjklxcvbnmwertyweiw')
print(ret) # ? 只匹配0次或者1次
ret = re.findall('w?q', 'wqywertyweqrwuiowjwdfghjklxcvbnqmwwqertyweiw')
print(ret) # {} 自定义匹配次数
ret = re.findall('w{3}q', 'wqywertywerwwwwquiowjwdfghjklxcvbnmwertyweiw')
print(ret)
# {1,3}匹配一次到三次
ret = re.findall('w{1,3}q', 'wqywertywerwwwwquiowjwdfghjklxcvbnmwertyweiw')
print(ret) '''
结论:
* = {0,正无穷}
+ = {1,正无穷}
?= {0,1} 推荐使用.*+?,减少使用{} ''' print("****************************") # 【】 字符集 选择【】内的字符进行匹配
ret = re.findall('w[c,d]q', 'wqywcqdertywdqerwwwwquiowjwdfghjklxcvbnmwertyweiw')
print(ret) ret = re.findall('w[a-z]q', 'wqyweqertywerwwwwquiowjwdqfghjklxcvbnmwertyweiw')
print(ret) # \ 斜杠
'''
反斜杠后加元字符去除特殊功能
反斜杠后加普通字符实现特殊功能 '''
# \d 匹配任何一个十进制数字
# \D 匹配任何非数字字符 大写取反
# \s 匹配任何空白字符 大写取反
# \w 匹配任何字母数字字符 大写取反
ret = re.findall('\w', 'wqyw')
print(ret)
ret = re.findall(r'v\b', 'wqv yw')
print(ret)
Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则的更多相关文章
- Python学习日记(八)—— 模块一(sys、os、hashlib、random、time、RE)
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- day18 python模块 random time sys os模块
day18 python 一.random模块 取随机整数 import random print(random.randint(1,2)) #顾头顾尾 p ...
- python基础之常用模块一(sys、greenlet、pymysql、paramiko、pexpect、configparser)
一.sys模块(内置模块) 用于提供对解释器相关的操作 import syssys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) ...
- python自学基础1week
一.python老师介绍 二.为什么要学习python? 三.学习python有前途吗? 疗程1:语言基础 疗程2:网络编程 疗程3:web基础开发 疗程4:算法&设计模式 疗程5:pytho ...
- collections、random、hashlib、configparser、logging模块
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...
- python之hashlib、configparser、logging模块
hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数 ...
- python django基础四 ORM简介
ORM,全称是object relation mapping.翻译过来,就是对象关系映射. 主要来学习MySQL操作,MySQL是一个软件.它的优点:1.免费 2.开源 pymysql,就是Mysql ...
- 【Python】【有趣的模块】【sys&time&os】
[模块] sys.path.append('C:/Users/wangxue1/PycharmProjects/selenium2TestOne') 然后就可以直接import 这个路径下的模块了 [ ...
- Python 自学基础(一)——元组 字典 文件操作
格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...
随机推荐
- codeforces#514 Div2---1059ABCD
1059A---Cashier http://codeforces.com/contest/1059/problem/A 题意: Vasya每天工作\(l\)个小时,每天服务\(n\)个顾客,每个休息 ...
- 计蒜客 31001 - Magical Girl Haze - [最短路][2018ICPC南京网络预赛L题]
题目链接:https://nanti.jisuanke.com/t/31001 题意: 一带权有向图,有 n 个节点编号1~n,m条有向边,现在一人从节点 1 出发,他有最多 k 次机会施展魔法使得某 ...
- 转:PrintWriter中write与println方法的区别
原文地址:https://blog.csdn.net/qq_25610165/article/details/57083118 自己遇到的问题是:刚开始学 socket 通讯, 代码运行是好着的,后来 ...
- 非常可乐---hdu 1495(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意: 有3个杯子a b c:a=b+c:然后刚开始时只有a是满的,其它为空的,然后a b c三个之间互相 ...
- vhost-user 分析1
2018-01-24 占个坑,准备下写vhost-user的东西 vhost-user是vhost-kernel又回到用户空间的实现,其基本思想和vhost-kernel很类似,不过之前在内核的部分现 ...
- 发现XMind一个超级牛逼的功能
本来想要自己手动建立下文件夹的结构图,一不小心发现了一个大惊喜. 比如想要看一下360Downloads文件夹下的文件结构,可以先创建一个名叫360Downloads的主节点,然后把其文件夹下的文件直 ...
- Directed Graph Loop detection and if not have, path to print all path.
这里总结针对一个并不一定所有点都连通的general directed graph, 去判断graph里面是否有loop存在, 收到启发是因为做了[LeetCode] 207 Course Sched ...
- matplotlib--设置线条颜色及形状
一.控制颜色 b--blue c--cyan(青色) g--green k--black m--magenta(紫红色) r--red w--white y--yellow 颜色有三种表示方法,可以用 ...
- numpy中arange()和linspace()区别
arange()类似于内置函数range(),通过指定开始值.终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值. linspace()通过指定开始值.终值和元素个数创建表示等差数列的 ...
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...