一.hashlib(md5)

 import hashlib
obj = hashlib.md5('dsfd'.encode('utf-8'))
obj.update('123'.encode('utf-8'))
print(obj.hexdigest())

二.random

1.randint

 #一般配合chr / ord 使用,生成随机验证码
#chr:给定一个int型,把int型转换为ascii码对照表中的字母
#和chr作用相反 #产生一个四位的随机验证码
import random
lis = []
for i in range(4):
v1 = random.randint(65,90)
v2 = chr(v1)
lis.append(v2)
result = ''.join(lis)
print(result)

三.getpass

 #在用户输入密码时,影藏密码,在cmd中运行有效
import getpass
val = getpass.getpass('请输入你的密码:')
print(val)

四.os

1.os.path.exists()

 #判断一个文件路径是否存在
import os
file_name = 'D:\\python\\code'
if not os.path.exists(file_name):
print('文件路径不存在')#可以创建
else:
print('文件路径已经存在')

2.os.path.dirname()

 #返回一个路径的上级一目录
import os
file_name = 'D:\\python\\code'
result = os.path.dirname(file_name)
print(result)

3.os.path.abspath()

 #获取一个文件的绝对路径
import os
file_name = 'x.py'
result = os.path.abspath(file_name)
print(result)

4.os.listdir()

 #获取当前目录下第一层的所有文件,返回一个列表
import os
file_name = 'D:\\code'
result = os.listdir(file_name)
print(result)

5.os.walk() / os.path.join()

 #os.walk  获取当前目录下所有层级的文件
#os.path.join 可以把两个或多个路径拼接起来
import os
file_name = 'D:\\code\\day'
result = os.walk(file_name)
for a,b,c in result:
for i in c:
val = os.path.join(a,i)
print(val)

6.os.makedirs()

 #创建新文件夹
import os
os.makedirs('text')

7.os.stat('目标文件').st_size

 #获取文件大小
import os
file_size = os.stat('455698.mp4').st_size
print(file_size)

8.os.rename()

 #对文件进行重命名
os.rename('db','bb')

五.sys

1.argv

 #获取解释器命令行路径
import sys
print(sys.argv)
###############
#接受两个参数,一个参数为文件名,一个为内容,把内容写到文件中
#D:\python\python37 D:\code\x.py 文件名 内容
import sys
data = sys.argv #[ D:\code\x.py , 文件名 , 内容]
file_name = data[1]
file_data = data[2]
with open(file_name, mode = 'w', encoding = 'utf-8') as f:
f.write(file_data)

2.sys.path / sys.path.append()

 #默认python导入模块时,去sys.path路径里面挨个查找
#也可以添加查找路径 sys.path.append()
import sys
data = sys.path
for item in data:
print(item)
######添加查找路径
import sys
os.path.append('D:\xxxx\xxx')

六.json

#json是一个特殊的字符串   【python中元祖和集合不能json】

1.dumps / dump

 #序列化  把python中的数据类型序列化为字符串
data = [11,'dd','liyang',{'k1':1,'k2':2}]
import json
result = json.dumps(data)
print(result,type(result))
#注意 列表或字典中如有中文,序列化时保留中文显示
2 data = [11,'dd','liyang',{'k1':1,'k2':'张杰'}]
3 import json
4 result = json.dumps(data,ensure_ascii = False)
5 print(result,type(result))
 
 #dump 可以把序列化后的数据写入文件中
import json
data = [11,22,{'k1':1}]
f = open('D:\\code\\x.txt', mode = 'w', encoding = 'utf-8')
json.dump(data,f)
f.close
print('写入成功')

2.loads / load

 #反序列化 把一个字符串转换为python中的数据类型
import json
v2 = '["k2",123]'
result = json.loads(v2)
print(result,type(result))
 #load 读取文件中被序列化的字符串,并进行反序列化
import json
f = open('D:\\code\\day\\x.txt', mode = 'r', encoding = 'utf-8')
print(json.load(f))
5 f.close

3.pickle

#json,优点:所有语言通用;缺点:只能序列化基本的数据类型 list/dict/int...
#pickle,优点:python中所有的东西都能被他序列化(socket对象);缺点:序列化的内容#只有python认识。\
"""
import pickle
v = {1,2,3,4}
val = pickle.dumps(v)
print(val)
data = pickle.loads(val)
print(data,type(data))
""" """
def f1():
print('f1') v1 = pickle.dumps(f1)
print(v1)
v2 = pickle.loads(v1)
v2()
"""

七.shutil

1.rmtree

 #删除文件目录
import shutil
shutil.rmtree('text')

2.move

 #重命名
import shutil
shutil.move('ddd','text')

3.make_archive

 #压缩文件
import shutil
shutil.make_archive('压缩后的文件名', 'zip', '压缩路径')

4.unpack_archive

 #解压缩文件
import shutil
shutil.unpack('要解压压缩件名', extract_dir=r, '要解压到哪里', format = 'zip')

5.##################示例

 import os
import shutil
from datetime import datetime
ctime = datetime.now().strftime('%Y-%m-%d-%H-%M-%S') # 1.压缩 text文件夹 zip
# 2.放到到 code 目录(默认不存在)
# 3.将文件解压到D:\x1目录中。
if not os.path.exists('codes'):
os.makedirs('codes')
shutil.make_archive(os.path.join('codes','times'), 'zip', 'D:\\code\\day')
file_name = os.path.join('codes','times')+'.zip'
shutil.unpack_archive(file_name, 'D:\\x1',format = 'zip')

最新文章

  1. BZOJ4318——OSU!
  2. 加载未安装APK中的类
  3. java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException
  4. JavaScript高级程序设计28.pdf
  5. QR Code於台灣各行業的行銷應用案例介紹
  6. Java+Velocity模板引擎集成插件到Eclipse及使用例子
  7. 移动端登录页面input获取焦点后页面布局及输入框上移的问题
  8. 【OpenGL】代码记录01创建窗口
  9. SQL反模式学习笔记7 多态关联
  10. 常见模块(一) time/datetime
  11. MySQL 迁移并搭建主从(实践)
  12. 【转】HTML5 API——无刷新更新地址 history.pushState/replaceState 方法
  13. BZOJ.4072.[SDOI2016]征途(DP 斜率优化)
  14. Nginx增加模块
  15. 系统清理工具CCleaner被植入后门
  16. C++ Boost在VS2015中的使用
  17. 解决Linux下pcieport 0000:00:1c.5问题导致的系统根目录/磁盘空间不足
  18. 在Ubuntu上安装Arena
  19. C++直接初始化和复制初始化2
  20. html的meta总结,html标签中meta属性使用介绍(转)

热门文章

  1. UVALive 4726 Average ——(斜率优化DP)
  2. onselectstart与onselect—禁止选择或禁止复制
  3. mysql —备份和恢复
  4. jquery - 定义二维数组
  5. 文件转移 互联网组成 路由器 分组交换 交换机 冲突域 网卡 数据帧的发送与接收会带来CPU开销 CPU中断 双网卡切换
  6. 如何在linux用户空间程序中打印时间戳?
  7. centos中screen的使用
  8. OSG Qt Widget加载三维模型
  9. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_17.RabbitMQ研究-与springboot整合-消费者代码
  10. jQuery.data() 即($.data())的实现方式