模块其实就是一个python文件
python导入模块的顺序
1. 从当前目录下找需要导入的python文件
2. 从python的环境变量中找 sys.path
当前目录和sys.path中都有import文件时,优先看当前目录的python文件。
1、标准模块(标准包):python自带的模块,直接import就能用的
string , random ,datetime ,os, json
2、第三方模块,别人写好的一些模块,要安装之后才可以用
1)傻瓜式安装
pip install pymysql
2)手动安装
到百度搜索安装包,如安装redis.
whl结尾的安装包
下载完成后,在下载文件夹的地址栏中输入cmd,即可打开当前目录命令行,输入命令:pip install redis-2.10.6-py2.py3-none-any.whl
.tar.gz结尾的安装包
如果是下载的redis-2.10.6.tar.gz,解压后,进入目录,在地址栏输入cmd
3、自己写的python文件,当作一个模块来引用
random模块
import random,string
print(string.printable) #代表 数字+字母+特殊字符
print(random.randint(1,100)) #随机取整数
print(round(random.uniform(1,99),2)) #取随机小数,加round取2位小数
print(random.choice([1,2,3,4])) #只能随机取1个元素
print(random.sample(string.printable,5)) #随机取N个元素,返回的是list
#洗牌
pickts = ['A','J','Q','K',2,3,4,5,6]
random.shuffle(pickts) #只能传list
print(pickts)
json模块
json串格式校验:http://www.bejson.com
1、json串 转成一个字典:load
import json
#json串是一个字符串
f = open('product.json',encoding='utf-8')
res = f.read() #用json.loads()要先读一次,变成字符串
product_dic = json.loads(res) #json.loads() 只能传一个字符串,把json串变成python的数据类型:字典
print(type(product_dic)) #已转换成字典类型
print(product_dic)
print(product_dic.get('product_info'))
import json
#json串是一个字符串
f = open('product.json',encoding='utf-8')
print(json.load(f)) #只传一个文件对象,自动读取文件,直接操作文件
2、字典转换一个json串:dump
d = {
"iphone":{
"color":"red",
"num":1,
"price":98.5
},
"wather":{
"num":100,
"price":1,
"color":"white"
}
}
import json
fw = open('product.json', 'w', encoding='utf-8')
dic_json = json.dumps(d, ensure_ascii=False, indent=4) #字典转换成json,变成字符串,ensure_ascii=False 显示中文,INDENT = indent = 4
fw.write(dic_json)
也可以写成:
import json
fw = open('product.json', 'w', encoding='utf-8')
json.dump(d,fw,ensure_ascii=False,indent=4)
dump是直接对文件进行操作,dumps是对字典进行操作
时间模块
#时间戳:
#1. 从unix元年到现在过了多少秒
#2.格式化好的时间
import time
print(time.time())
# time.sleep(1)
today = time.strftime('%Y-%m-%d %H:%M:%S')
# today = time.strftime('%y-%m-%d %H:%M:%S')
print(today)
#时间戳 转换 时间:
# 1. 要先转换成时间元组
#2.再把时间元组转成成格式化的时间
print(time.gmtime()) #默认取的是标准时区的时间,不传时默认标准时区的时间戳
print(time.localtime()) #默认取的是当前时区的时间,不传时默认当前时区的时间戳
s = time.localtime(1524299155)
print(time.strftime('%Y-%m-%d %H:%M:%S',s))
时间戳转换格式化时间的函数
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(19732649413))
# 时间转换成时间戳
#1.把格式化的时间转换成时间元组
#2.把元组转换成时间戳
res = time.strptime('20180421','%Y%m%d')
print(res)
print(time.mktime(res))
格式化时间转换时间戳的函数:
# 时间转换成时间戳
#1.把格式化的时间转换成时间元组
#2.把元组转换成时间戳
res = time.strptime('20180421','%Y%m%d')
print(res)
print(time.mktime(res))
def strToTimestamp(str = None,format = '%Y%m%d'):
if str:
tp = time.strptime(str,format)
res = time.mktime(tp)
else:
res = time.time()
return int(res)
print(strToTimestamp())
print(strToTimestamp('2018-02-15','%Y-%m-%d'))
datetime 模块
import datetime
print(datetime.datetime.today()) #获取当前时间,精确到秒
print(datetime.date.today()) #精确到天
day = datetime.date.today() + datetime.timedelta(days=5)
print(day)
min = datetime.datetime.today() + datetime.timedelta(days=1,minutes=5,seconds=5,weeks=1)
print(min)
print(min.strftime('%Y-%m-%d'))
加密模块
import hashlib
m = hashlib.md5()
# print(m.__doc__) #查看有哪些方法
print(m.hexdigest()) #对空加密
passwd = 'aaa123'
print(passwd.encode()) #把字符串转换成bytes类型,加密不能对字符串进行加密,要转换成bytes类型
m.update(passwd.encode())
print(m.hexdigest())
#md5加密是不可逆的
网上md5解密是采用的撞库来查询的。
def my_md5(srt):
import hashlib
new_str = str.encode() #把字符串转换层buytes类型
m = hashlib.md5() #实例化md5对象
m.update(new_str) #加密
return m.hexdigest() #获取结果返回
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- python 模块加载
python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...
- pycharm安装python模块
这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK
- Python模块常用的几种安装方式
Python模块安装方法 一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:pytho ...
随机推荐
- java-javaSE-泛型和反射
泛型 什么是泛型 泛型,即"参数化类型".顾名思义,就是将类型参数化,然后在使用/调用时传入具体的类型(类型实参). 为什么使用泛型 泛型提高程序操作的可读性和安全性. 例如集合类 ...
- 手机、ESP32单片机、MQTT服务器连接实验
实验目的:通过自己制作的手机APP,连接MQTT服务器,获取ESP32单片机的温湿度信息,控制ESP32单片机上的LED开关. 实验准备: 1.硬件:ESP32开发板(型号不限,esp01s也可以). ...
- 语法——包、权限修饰符、final
一.包 1.什么是包? 包是用来分门别类的管理各种不同的类的,类似于文件夹,建包有利于程序的管理和维护. 建包的语法格式: package 公司域名倒写.技术名称.包名建议全部英文小写,且具备意义. ...
- java 之 UncaughtExceptionHandler异常处理机制
1.java 1.5版本出现的 UncaughtExceptionHandler 当线程由于未捕获异常突然终止时调用的处理程序的接口. 当一个线程由于未捕获异常即将终止时,Java虚拟机将使用thre ...
- 【Pr】如何将音频剪成多段批量导出
如何将音频剪成多段批量导出 需要软件: Pr, Adobe Media Encoder (时间线窗口中) 用剃刀将音频割成多段 (时间线窗口中) 选中音频右键 | 嵌套 | 输入名字 (嵌套快捷键:A ...
- laravel phpstorm ide-helper
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ composer create-proj ...
- vue3文档学习
1.vue的核心功能 1.声明式渲染2.响应性: vue会自动跟踪JavaScript状态并在其发生变化时响应式的更新DOM. 2.渐进式框架 根据不同的需求场景,可以用不同的方式使用vue: 1.无 ...
- 第一个helloworld程序
; hello.asm section .data msg db "hello, world",13,10,0 section .bss section .text global ...
- 【NPDP专项练习】第七章 产品生命周期管理
第七章 产品生命周期管理 1.以下哪一项是产品生命周期缩短的原因之一? A 技术停滞不前 B 减少竞争 C 顾客要求更高 D 沟通障碍正在增加 答案:C 解析 A技术持续进步:B竞争加剧:D沟通增加 ...
- 【Quartus系列】实验一: 3-8译码器(原理图输⼊设计)
实验一: 3-8译码器(原理图输⼊设计) ⼀:实验⽬的 1. 了解3-8译码器的电路原理,掌握组合逻辑电路的设计⽅法 2. 掌握QuartusII软件原理图输⼊设计的流程 ⼆:实验内容 2.1设计输⼊ ...