python-----模块【第一部分】-----
一.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')
python-----模块【第一部分】-----的更多相关文章
- 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档
孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...
- 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天
孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...
- Python学习-第一天-函数和模块的使用
目录 Python学习-第一天总结 print输出的一种简单格式 函数参数之可变参数 模块管理函数 if else语句的单行实现(简洁) 变量作用域 函数书写格式 Python学习-第一天总结 pri ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- Python模块学习
6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...
- python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- 编程:C#调用Python模块
当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python. 如果让C#支持调用Python模块 ...
随机推荐
- 解决Android Studio 打开Flutter 项目,找不到设备的问题
开始设置了ANDROID_HOME环境变量后,发现Flutter 识别不了安卓SDK, 使用命令配置发现配置是失败的,貌似是不支持路径里有空格 复制一份SDK到没有空格的路径后,SDK就能识别了,并且 ...
- DockerFile体系结构(保留字指令)
1.FROM --基础镜像,当前新镜像是基于那个镜像的 2.MAINTAINER --镜像维护者的姓名和邮箱地址 3.RUN --容器构建时需要运行的指令 4.EXPOSE --当前容器对外暴露出的端 ...
- 了解Spring Boot的自动配置
摘自:https://www.jianshu.com/p/ddb6e32e3faf Spring Boot的自动配置给开发者带来了很大的便利,当开发人员在pom文件中添加starter依赖后,mave ...
- pwn学习日记Day17 《程序员的自我修养》读书笔记
静态链接章小结 本章首先学习了静态链接的第一步骤,即目标文件在被链接成最终可执行文件时,输入目标文件中的各段是如何被合并到输出文件中的,链接器如何为它们分配在输出文件中的空间和地址.一旦输入段中的最终 ...
- PHP中部分宏应用
1.字符串复制 ZVAL_STRINGL(pzv, str, len, dup):str 和 len 分别为内存中保存的字符串地址和他的长度,dup之名该字符串是否需要被复制,值为1则将先申请一块新内 ...
- linux系统安装硬盘分区建议
一.常见挂载点的情况说明一般来说,在linux系统中都有最少两个挂载点,分别是/ (根目录)及 swap(交换分区),其中,/ 是必须的: 详细内容见下文: 安装系统时选择creat custom ...
- impdp不是内部或外部命令(Linux)
1.在windows环境变量下,配置path系统变量. 右击“我的电脑”—>“高级”—>“环境变量”—>“系统变量”—>path:然后添加";oracle导入导出命令 ...
- nodejs 服务器模拟异常状态码429,以及前端vue axios捕获状态码
nodejs 服务端发送429状态: extendInfo (req, res) { res.status(429).json('Too many requests, please try again ...
- mongoose 建立schema 和model
在node中使用MongoDB很多情况下,都是使用mongoose的,所以这集来介绍一下 安装 yarn add mongoose 连接 const mongoose = require(" ...
- Git missing Change-Id in commit message footer解决方法
Git missing Change-Id in commit message footer解决方法在Git向服务器提交代码时,出现如下错误missing Change-Id in commit me ...