#exit() 退出终端的命令
#导入os模块 import os
#getctime() 获取文件的创建时间 get create time #getmtime() 获取文件的修改时间 get modify time #getatime() 获取文件的访问时间 get active time
import time
filepath = '/home/sy/下载/chls'
os 常用方法
sys 模块
2、主要time生成方法和time格式转换方法实例:
import time
struct_time元组元素结构
format time结构化表示
3、time加减
datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
1、date类
静态方法和字段
方法和属性
2、time类
静态方法和字段
方法和属性
3、datetime类
静态方法和字段
方法和属性
5、tzinfo时区类
from datetime import datetime, tzinfo,timedelta
<> tzinfo是关于时区信息的类 tzinfo是一个抽象类,所以不能直接被实例化 > class UTC(tzinfo): <>UTC> def init(self,offset = 0): self._offset = offset
#计算时间差时也会考虑时区的问题 timespan = beijing - bangkok print "时差:",timespan
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法
import hashlib
# ######## md5 ######## string = "beyongjie"
输出结果:
注意:hashlib 加密啊的字符串类型为二进制编码,直接加密字符串会报如下错误:
TypeError: Unicode-objects must be encoded before hashing
可以使用encode进行转换
或者使用byte转换为二进制
以上输出:
输出结果: 第一次a加密: 0cc175b9c0f1b6a831c399e269772661 第二次b加密: 187ef4436122d1cc2f40dc2b92f0eba0 b单独加密: 92eb5ffee6ae2fec3ad71c777531578f ab单独加密: 187ef4436122d1cc2f40dc2b92f0eba0
以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
输出结果: 普通加密: 187ef4436122d1cc2f40dc2b92f0eba0 采用key加密: 1b073f6b8cffe609751e4c98537b7653
Token:即接口的key
data:要加密的数据
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:
配置logging基本的设置,然后在控制台输出日志,
运行时,控制台输出,
logging中可以选择很多消息级别,如debug、info、warning、error以及critical。通过赋予logger或者handler不同的级别,开发者就可以只输出错误信息到特定的记录文件,或者在调试时只记录调试信息。
例如,我们将logger的级别改为DEBUG,再观察一下输出结果,
控制台输出,可以发现,输出了debug的信息。
filename:指定日志文件名;
filemode:和file函数意义相同,指定日志文件的打开模式,'w'或者'a';
format:指定输出的格式和内容,format可以输出很多有用的信息,
2.2.1 将日志写入到文件
设置logging,创建一个FileHandler,并对输出消息的格式进行设置,将其添加到logger,然后将日志写入到指定的文件中,
2.2.2 将日志同时输出到屏幕和日志文件
logger中添加StreamHandler,可以将日志输出到屏幕上,
可以发现,logging有一个日志处理的主对象,其他处理方式都是通过addHandler添加进去,logging中包含的handler主要有如下几种,
2.2.3 日志回滚
使用RotatingFileHandler,可以实现日志回滚,
可以在工程目录中看到,备份的日志文件,
可以设置不同的日志等级,用于控制日志的输出,
FATAL:致命错误 CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用 ERROR:发生错误时,如IO操作失败或者连接问题 WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误 INFO:处理请求或者状态变化等日常事务 DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态
Python中的traceback模块被用于跟踪异常返回信息,可以在logging中记录下traceback,
代码,
替换为,
尽管可以在Python代码中配置logging,但是这样并不够灵活,最好的方法是使用一个配置文件来配置。在Python 2.7及以后的版本中,可以从字典中加载logging配置,也就意味着可以通过JSON或者YAML文件加载日志的配置。
JSON配置文件,
通过YAML文件进行配置,比JSON看起来更加简介明了,
subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如:
说明:
参数说明:
>>> print(err)
>>> print(err)
实现类似df -Th | grep data命令的功能,实际上就是实现shell中管道的共功能。
>>> print(err) None
那么我们到底该用哪个模块、哪个函数来执行命令与系统及系统进行交互呢?下面我们来做个总结:
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
在python中,有专门处理json格式的模块—— json 和 picle模块
Json 模块提供了四个方法: dumps、dump、loads、load
示例代码:
保存的文件效果:
二. loads 和 load
loads和load 反序列化方法
查看源码:
实例:
# 输出: {'name': 'Tom', 'age': 23} {'name': 'Tom', 'age': 23}
三. json 和 pickle 模块
json模块和pickle模块都有 dumps、dump、loads、load四种方法,而且用法一样。
不用的是json模块序列化出来的是通用格式,其它编程语言都认识,就是普通的字符串,
而picle模块序列化出来的只有python可以认识,其他编程语言不认识的,表现为乱码
不过picle可以序列化函数,但是其他文件想用该函数,在该文件中需要有该文件的定义(定义和参数必须相同,内容可以不同)
四. python对象(obj) 与json对象的对应关系
五. 总结
1. json序列化方法:
dumps:无文件操作 dump:序列化+写入文件
2. json反序列化方法:
loads:无文件操作 load: 读文件+反序列化
3. json模块序列化的数据 更通用
picle模块序列化的数据 仅python可用,但功能强大,可以序列号函数
4. json模块可以序列化和反序列化的 数据类型 见 python对象(obj) 与json对象的对应关系表
5. 格式化写入文件利用 indent = 4
现在是解析xml文件的代码
configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近。Python2.x 中名为 ConfigParser,3.x 已更名小写,并加入了一些新功能。 配置文件的格式如下:
“[ ]”包含的为 section,section 下面为类似于 key - value 的配置内容; configparser 默认支持 '=’ ':’ 两种分隔。
使用 configparser 首先需要初始化实例,并读取配置文件:
或者可以直接读字典
[DEFAULT] 一般包含 ini 格式配置文件的默认项,所以 configparser 部分方法会自动跳过这个 section 。 前面已经提到 sections() 是获取不到的,还有删除方法对 [DEFAULT] 也无效:
但指定删除和修改 [DEFAULT] 里的 keys & values 是可以的:
还有个特殊的是,has_section() 也无效,可以和 in 区别使用
randmon(获取随机数)
随机整数:
随机选取0到100间的偶数:
随机浮点数:
随机字符:
多个字符中选取特定数量的字符:
多个字符中选取特定数量的字符组成新字符串:
随机选取字符串:
洗牌:
引入: import shutil
归档:将多个文件合并到一个文件当中,这种操作方式就是归档。
解包:将归档的文件进行释放。
压缩:压缩时将多个文件进行有损或者无损的合并到一个文件当中。
解压缩:就是压缩的反向操作,将压缩文件中的多个文件,释放出来。
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。
1、下载安装
2、模块使用
import paramiko
import os,sys import paramiko
import paramiko
Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。
1、安装模块
2、使用模块
3、Http请求和XML实例
实例:查看火车停靠信息
paramiko模块
类似问题可以为linux系统中~/.ssh/known_hosts文件中的内容。