一、string模块

 import string
print(string.ascii_letters) # 所有大小写字母
print(string.ascii_lowercase) # 所有小写字母
print(string.ascii_uppercase) # 所有大写字母
print(string.digits) # 所有数字
print(string.punctuation) # 所有特殊标点符号
print(string.printable) # 数字+字母+特殊字符

二、random模块

 import random,string
pickts = ['A','J','Q','K',2,3,4,5,6]
random.shuffle(pickts) # 洗牌,打乱顺序(只能传list)
print(pickts)
print(random.randint(1,10)) # 随机取1到10之间的整数
print(round(random.uniform(1,99),2)) # 随机取1到99之间的小数,小数点后保留2位小数
print(random.choice([1,2,3,4])) # 随机取数组当中的1个元素
print(random.sample(string.printable,5)) # 随机取N个元素,返回的是list

三、sys模块

 import sys
print(sys.platform) # 判断是什么操作系统
sys.path.append(BASEPATH) # 将BASEPATH插到环境变量最后
sys.path.insert(0,BASEPATH) # 将BASEPATH插到环境变量最前面,效率高
print(sys.path) # Python的环境变量
print(sys.version) #获取Python解释程序的版本信息
print(sys.argv) # 用来获取命令行里面运行python文件的时候传入的参数,它返回的是一个list
# 它默认就有一个参数,就是当前文件的文件名,如果运行的命令在该python文件名后还带有参数则该参数也会加入返回的list当中
# 在命令行中输入:python sys模块.py --help
# 返回:['sys模块.py', '--help']

下面写一段程序来说明sys.argv的作用

  1、它是用来获取命令行里面运行python文件的时候传入的参数
  2、它返回的是一个list
  3、这个list默认就有一个参数,就是当前的这个文件名

 import sys
command = sys.argv
print(command)
if len(command) > 1:
cmd1 = command[1]
if cmd1 == '--help':
print('这是个帮助文档'
'这个python文件是用来说明sys.argv的作用')
elif cmd1 == 'os':
print('当前的操作系统是%s'%sys.platform)
else:
print('输入命令有误')
else:
print('运行python文件的时候需要传入一个参数,'
'e.g:'
'python xx.py install'
)
# 输入命令:python tools.py --help
# 返回:['tools.py', '--help'] 这是个帮助文档这个python文件是用来说明sys.argv的作用
# 输入命令:python tools.py os
# 返回:['tools.py', '--help'] 当前的操作系统是win32
# 输入命令:python tools.py
# 返回:['tools.py'] 运行python文件的时候需要传入一个参数,e.g:python xx.py install

四、os模块

 # 对操作系统的一些操作
import os
print(os.getcwd()) # 获取当前目录
os.chmod('/usr/local',777) # 给文件或目录加权限,一般用于linux操作系统(1执行2写4读)
print(os.chdir('../')) # 更改目录,可以填相对路径和绝对路径(与Linux一样),没有返回值
print(os.makedirs('niuniu/python')) # 递归创建目录,父目录不存在时会自动创建,可创建多层目录
print(os.mkdir('nhy')) # 创建目录,父目录不存在会报错,只能创建一级目录
print(os.removedirs('niuniu/python')) # 递归删除目录,只能删除空目录
print(os.rmdir('nhy')) # 删除指定目录,只能删除空目录
print(os.remove('test.py')) # 删除文件,只能删除文件
print(os.listdir('e:\\')) # 列出目录下的所有文件和目录,放在一个list里面
print(os.rename('test','test1')) # 重命名
print(os.stat('day6.py')) # 获取文件信息
print(os.sep) # 根据当前操作系统自动生成路径分隔符
print('day6'+os.sep+'x.py') # 拼路径
print(os.linesep) # 当前操作系统的换行符
print(os.pathsep) # 当前系统环境变量中每个路径的分隔符,linux是冒号,Windows是分号
print(os.environ) # 当前系统的环境变量
print(os.name) # 当前系统名称,Windows是nt,Linux是posix
print(os.system('dir')) # 执行操作系统命令,获取不到结果(返回的是0执行成功或1执行失败)
print(os.popen('ipconfig').read()) # 执行操作系统命令,能获取到命令执行的结果
print(os.path.abspath('.')) # 获取当前目录的绝对路径
print(os.path.abspath(__file__)) # 获取到当前文件的绝对路径
print(os.path.split('E:\Pycharm_Workspace\day6.py')) # 分割路径和文件名,返回的是一个元组,第一个元素是路径,第二个元素是文件名
print(os.path.dirname('E:\Pycharm_Workspace\Python-code')) # 获取父目录,获取它的上一级目录
print(os.path.basename('/usr/local/test.txt')) # 获取路径的最后一级,如果是文件则显示文件
print(os.path.exists('E:\Pycharm_Workspace\Python-code')) # 判断目录/文件是否存在
print(os.path.isabs('./')) # 判断是否绝对路径
print(os.path.isfile('E:\day6.py')) # 判断是否是一个文件,判断文件是否存在
print(os.path.isdir('E:\day6')) # 判断是否是一个目录,判断目录是否存在
print(os.path.getsize('E:\Pycharm_Workspace\Python-code\day6\day6.py')) # 获取文件的大小
print(os.path.join(r'\usr','local','tomcat','logs')) # 拼接成一个路径
os.walk('E:\Pycharm_Workspace') # 遍历目录,列出目录下所有的目录和文件,一层一层下去
# 循环三个变量,分别代表路径、目录和文件
# abs_path 当前循环的绝对路径
# dir 目录下面的所有文件夹
# file 目录下的所有文件
for abs_path,dir,file in os.walk(r'E:\Pycharm_Workspace\Python-code\day6\test'):
print(abs_path,dir,file)

练习一:在logs目录下创建子目录及在各目录下创建相关日志文件

 import datetime,os
dirs = ['tomcat','nigix','apache','python','app','android','ios']
base_path = 'E:\logs'
os.chdir(base_path)
for d in dirs:
os.mkdir(d)
os.chdir(d)
for i in range(10):
t = datetime.date.today() + datetime.timedelta(days=-i)
name = '%s_%s.log'%(d,t)
open(name,'w',encoding='utf-8')
os.chdir('../')

练习二:往日期为双数的日志文件中写内容

 import os
for abs_path,dir,file in os.walk('E:\logs'):
for f in file:
day = f.split('.')[0].split('-')[-1]
if int(day)%2 == 0:
file_name = os.path.join(abs_path,f) # 拼接绝对路径
open(file_name,'w',encoding='utf-8').write('测试中')

五、time模块

1、基本用法:

 import time
print(time.time()) # 获取当前时间戳:从unix元年到现在过了多少秒
print(time.gmtime()) # 取标准时区的时间(比中国时间慢8小时),返回的是时间元组
print(time.localtime()) # 取当前时区的时间,返回的是时间元组
print(time.strftime('%Y-%m-%d')) # 获取格式化好的时间,格式可以自己定义
print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%Y%m%d%H%M%S'))
# Y:年,m:月,d:日,H:时,M:分,S:秒
time.sleep(5) # 等待时间5秒

2、把时间戳转换成格式化好的时间:

  a、先把时间戳转换成时间元组

  b、再把时间元组转换成格式化好的时间

 import time
f = time.time() # 获取当前时间戳
s = time.localtime(f) # 把时间戳转换成时间元组
m = time.strftime('%Y-%m-%d %H:%M:%S',s) # 把时间元组转换成格式化时间
print(m)

定义函数:把时间戳转换成格式化好的时间函数

  a、不传入时间戳的话,返回当前格式化好的时间

  b、传入时间的话,把时间戳转换成格式化好的时间并返回

 def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
if timestamp:
time_tuple = time.localtime(timestamp)
res = time.strftime(format,time_tuple)
else:
res = time.strftime(format) # 默认取当前时间
return res
print(timestamp_to_fomat())
print(timestamp_to_fomat(1224398473))
print(timestamp_to_fomat(1224398473,'%Y-%m-%d'))

3、把格式化好的时间转换成时间戳:

  a、先把格式化好的时间转换成时间元组

  b、再把时间元组转换成时间戳

 import time
m = '2017-1-1 18:20:11' # 定义格式化好的时间
p = time.strptime(m,'%Y-%m-%d %H:%M:%S') # 把格式化好的时间转换成时间元组
s = time.mktime(p) # 把时间元组转换成时间戳
print(s)

定义函数:把格式化好的时间转换成时间戳函数

  a、不传入格式化好的时间的话,返回当前时间戳

  b、传入格式化好的时间的话,把格式化好的时间转换成时间戳并返回

 def strToTimestamp(str=None,format='%Y-%m-%d %H:%M:%S'):
if str: # 如果传了时间
tp = time.strptime(str,format) # 转成时间元组
res = time.mktime(tp) # 再转成时间戳
else:
res = time.time() # 默认取当前时间戳
return int(res)
print(strToTimestamp())
print(strToTimestamp('2011-2-28 12:30:15'))
print(strToTimestamp('2011-2-28','%Y-%m-%d'))

六、datetime模块

  datetime模块和time模块类似,也可以进行时间戳、时间元组以及格式化时间的相互转换。

 import datetime
print(datetime.datetime.today()) # 获取当前时间,精确到秒
print(datetime.date.today()) # 获取当前时间,精确到天
print(datetime.datetime.now()) # 当然时间格式化输出
res = datetime.date.today() + datetime.timedelta(days=5)#获取5天以后的时间
res = datetime.date.today() + datetime.timedelta(days=-5)#获取5天以前的时间
res = datetime.date.today() + datetime.timedelta(weeks=5)#获取5周以后的时间
res = datetime.datetime.today() + datetime.timedelta(hours=5)#获取5小时以后的时间
res = datetime.datetime.today() + datetime.timedelta(minutes=5)#获取5分钟以后的时间
res = datetime.datetime.today() + datetime.timedelta(seconds=5)#获取5秒钟以后的时间
res = datetime.datetime.today() + datetime.timedelta(days=5,hours=5,minutes=5,seconds=5,weeks=5)
print(res.strftime('%Y%m%d--%H%M%S')) # 格式化时间输出
print(res)

七、hashlib模块

  hashlib模块用于加密,加密方式包括:md5、sha1、sha224、sha256、sha384、sha512、blake2b、blake2s、sha3_224、sha3_256、sha3_384、sha3_512、

shake_128和shake_256等等。

 import hashlib
passwd = 'jj123' # 普通字符串不能加密,必须是二进制的bytes
f = passwd.encode() # 把字符串转成bytes(二进制)类型
m = hashlib.md5() # 定义加密方法
m.update(f) # 对bytes(二进制)类型字符串进行加密
print(m.hexdigest()) # 获取结果返回
# md5加密是不可逆的 # 其他加密方法,用法与md5一样,只是返回的密文长度不一样
passwd = 'jack'
f = passwd.encode()
m = hashlib.sha256()
m.update(f)
print(m.hexdigest())

封装加密函数:

 def my_md5(str):
new_str = str.encode() # 把字符串转成bytes类型
# new_str = b'%s'%str # 把字符串转成bytes类型
m = hashlib.md5() # 实例化md5对象
m.update(new_str) # 加密
return m.hexdigest() # 获取结果返回

Python学习之==>常用模块的更多相关文章

  1. Python学习 :常用模块(二)

    常用模块(二) 四.os模块 os模块是与操作系统交互的一个接口,用于对操作系统进行调用 os.getcwd() # 提供当前工作目录 os.chdir() # 改变当前工作目录 os.curdir( ...

  2. Python学习笔记-常用模块

    1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...

  3. Python学习 :常用模块(三)----- 日志记录

    常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...

  4. python 学习分享-常用模块篇

    模块 就是前人给你造的轮子,你开车就好!!! 常用模块有: time模块 random模块 os模块 sys模块 shutil模块 json  &  picle模块 shelve模块 xml处 ...

  5. Python学习-day5 常用模块

    day5主要是各种常用模块的学习 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 conf ...

  6. Python学习 :常用模块(四)----- 配置文档

    常用模块(四) 八.configparser 模块 官方介绍:A configuration file consists of sections, lead by a "[section]& ...

  7. Python学习 :常用模块(一)

    常用模块(一) 一.时间(time)模块 时间戳 (Timestamp):时间戳表示的是从1970年1月1日00:00:00为计时起点,到当前的时间长度 import time print(help( ...

  8. 06 python学习笔记-常用模块(六)

    一.  模块.包 1.什么是模块? Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句,是用来组织代码的.模块能定义函数 ...

  9. python学习之常用模块

随机推荐

  1. Linux 学习 (一)

    最常用的7个Linux命令: cd:切换目录. pwd:查看当前所在目录. ls:查看目录下的文件. touch:没有文件则创建文件. mkdir:创建目录. mr:remove删除.         ...

  2. 解决deepin没有ll等命令的办法

    编辑~/.bashrc, 添加alias 如下 vim ~/.bashrc 设置别名. 添加如下行 alias ll='ls -alF' alias la='ls -A' alias vi='vim' ...

  3. SQL的基本操作(三)

    Hive基本SQL操作 Hive DDL(数据库定义语言) 1.数据库的基本操作 --展示所有数据库 show databases; --切换数据库 use database_name; /*创建数据 ...

  4. 中文转换为ASCII码的方式

    可以到jdk安装路径: 找到native2ascii.exe文件 双击运行,敲入中文即可获取对应的ASCII编码

  5. 【HDU2089】不要62

    题目大意:求区间 [n,m] 中数位不包含 4 和 62 的数字的个数. 题解:数位dp. 预处理出 \(f[i][j]\) 表示 i 位数字中以 j 为第一位的满足条件的数字个数. 对于统计答案来说 ...

  6. 一个不错的vue项目

    项目演示: https://www.xiaohuochai.cc 项目地址:https://github.com/littlematch0123/blog-client

  7. java——hasCode是如何对应到数组索引的?为什么HashMap的initailCapacity要设置成2的n次幂?为什么要树化hashMap?

    一: 源代码是这样实现的: static final int hash(Object var0) { int var1; return var0 == null ? 0 : (var1 = var0. ...

  8. GO语言学习笔记2-int类型的取值范围

    相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint. 1.i ...

  9. C# 获得对象的命名空间 ?.

    A a = new A(); var t = a?.ToString(); //t = WebApplication1.Controllers.A //获得命名空间和类名 var t1 = (A)nu ...

  10. 小程序获取Unionid

    小程序获取用户Unionid,必须授权获取密文.但授权成功后不是永久的.除非关注了公众号或者App微信绑定了, 解决办法是通过code获取openid,然后用openid去数据库查对应的Unionid ...