Python中常用的模块

1、模块的概述

(1)模块定义:用来从逻辑上组织python代码实现一个功能,本质就是.py结尾的python文件

(2)包:用来从逻辑上组织模块,本质是一个目录(必须带有一个__init__.py的文件)

(3)模块导入:

import module_name

import module_name1,module_name2

from module_name import *(不建议使用)

from module_name import logger aslogger_dayi(如果有重名,给调用的模块取别名)

from module_name import moudule_name1module_name2

(4)import本质:导入模块的本质就是把Python文件解释一遍

导入包的本质就是执行该包下的__init__.py文件

(5)模块的分类

1)标准库

2)开源模块

3)自定义模块

2、 python时间处理之time模块及datetime模块

(1)Python中时间的常用表示方法

1)时间戳

2)字符串时间

3)元组中九个元素

(2)time模块的用法(可以使用help(time)查看)

import time
print(time.time())             #时间戳
print(time.ctime())            #返回当前时间的字符串格式
print(time.ctime(time.time()-6700))    #打印当前时间戳减6700后的时间
time.asctime()                 #把元组转换成字符串时间格式不传参数是默人传当前时间
time_obj = time.gmtime()               #分将时间转换成UTC时间(元组的形式)
print(time_obj.tm_year,time_obj.tm_mon)  #分别打印需要的时间值
#字符串拼接打印
print("{year}-{m}-{day}".format(year=time_obj.tm_year,m=time_obj.tm_mon,day =time_obj.tm_mday))   
print(time.localtime())               #打印本地时间(组的形式)
print(time.mktime(time_obj))          #把时间对象转化成时间戳,里面必须传参数
#将时间延迟4秒钟#将struct_time格式转化成字符串格式(时间元组的形式转化成字符串,顺序可以调整)
print(time.sleep(4))
tm = time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())  print(tm)
#将字符串格式转化成struct-time格式(时间字符串格式转化成元组形式,位置与后面位置一一对应)
print(time.strptime("2016-12-13","%Y-%m-%d") )

(3)datetime模块的用法

import time
import datetime
print(datetime.date.today())             #打印当前的日期
print(datetime.date.fromtimestamp(time.time()-864008))  #打印当前时间的时间戳减去864008的日期
current_time = datetime.datetime.now()   #打印当前时间的详细时间,包括毫秒
print(current_time)                     
print(current_time.timetuple())         #打印struct_time格式
print(datetime.datetime.now() + datetime.timedelta(days=10) )    #比现在加10天
print(datetime.datetime.now() + datetime.timedelta(days=-10) )   #比现在减10天
print(datetime.datetime.now() + datetime.timedelta(hours=-10) )  #比现在减10小时
print(datetime.datetime.now() + datetime.timedelta(hours=10) )   #比现在加10小时
print(current_time.replace(2010))       #将现在的时间替换为2010,10,10
print(datetime.datetime.strptime("21/11/06 16:00", "%d/%m/%y %H:%M"))

3、随机数字模块

(1)作用:用于生成随机数字

(2)随机数字模块的使用(help(random))

import random                     #引入随机数字模块
print(random.randint(0,99))       #随机打印指定范围内整数
print(random.randrange(0.100))    #打印指定范围内的整数,顾头不顾尾
print(random.randrange(0,100,2))  #取偶数
print(random.choice(‘abcdefhi&*([A‘))    #随机打印指定字符
print(random.sample(‘abcdefhi&*([A‘,3))  #打印指定个数的字符,一列表形式打印

(3)随机数字模块的使用之生成6位随机验证码

import random
li = []
for i in range(6):
    r = random.randrange(0,5)
    if r == 2 or r == 4:
        num = random.randrange(0, 10)
        li.append(str(num))
    else:
        temp = random.randrange(65, 91)
        c = chr(temp)
        li.append(c)
result = "".join(li)
print(result)

4、os模块的使用

(1)作用:Python标准库中用于访问操作系统功能的模块,os模块提供了一种可移植的方法使用操作系统。使用os模块中提供的接口,可以实现扩平台访问。

(2)功能


功能


作用


os.getcwd()


获取当前工作目录,即当前python脚本工作的目录路径


os.chdir("dirname")


改变当前脚本工作目录;相当于shell下cd


os.curdir


返回当前目录: (‘.‘)


os.pardir


获取当前目录的父目录字符串名:(‘..‘)


os.makedirs(‘dir1/dir2‘)


可生成多层递归目录


os.removedirs(‘dirname1‘)


若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推


os.mkdir(‘dirname‘)


生成单级目录;相当于shell中mkdir dirname


os.rmdir(‘dirname‘)


删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname


os.listdir(‘dirname‘)


列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印


os.remove()


删除一个文件


os.rename("oldname","new")


重命名文件/目录


os.stat(‘path/filename‘)


获取文件/目录信息


os.sep


操作系统特定的路径分隔符,win下为"\\",Linux下为"/"


os.linesep


当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"


os.pathsep


用于分割文件路径的字符串


os.name


字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘


os.system("bash command")


运行shell命令,直接显示


os.environ


获取系统环境变量


os.path.abspath(path)


返回path规范化的绝对路径


os.path.split(path)


将path分割成目录和文件名二元组返回


os.path.dirname(path)


返回path的目录。其实就是os.path.split(path)的第一个元素


os.path.basename(path)


返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素


os.path.exists(path)


如果path存在,返回True;如果path不存在,返回False


os.path.isabs(path)


如果path是绝对路径,返回True


os.path.isfile(path)


如果path是一个存在的文件,返回True。否则返回False


os.path.isdir(path)


如果path是一个存在的目录,则返回True。否则返回False


os.path.join(path1[, path2[, ...]])


将多个路径组合后返回,第一个绝对路径之前的参数将被忽略


os.path.getatime(path)


返回path所指向的文件或者目录的最后存取时间


os.path.getmtime(path)


返回path所指向的文件或者目录的最后修改时间

(3)用法

import os
print(os.getcwd())      # 获取当前目录
os.chdir("C:\\Users")  # 切换目录,U前要加转义符"\"或者写成os.chdir(r"C:\Users")
print(os.getcwd())
print(os.curdir)         # 获取当前目录
print(os.pardir)        #获取当前目录的父目录
os.makedirs(r"C:\a\b\c\d") #递归创建目录
os.removedirs(r"C:\a\b\c\d") #目录为空则删除,递归到上一次目录,若为空则删除,以此类推
# os.mkdir(r‘D:\a‘)   #创建单个目录
# os.mkdir(r‘D:\a\b‘)
# os.rmdir(r‘D:\a\b‘)  #删除单个目录
print(os.listdir(r‘D:‘))  #列出目录下的内容,以列表的形式显示
print(os.stat(r‘D:\hello.py‘))  #列出文件的属性
print(os.sep)     #输出当前目录的分隔符
print(os.linesep) #输出当前平台的行终止符,win下为“\t\n”,linux下为“\n”
print(os.pathsep)
print(os.environ)  #c查看当前系统的环境变量,以字典形式显示
print(os.name)     #输出字符串指示系统的名称,Linux为‘poxis‘windows为‘nt‘
# os.system(‘ipconfig/all‘)  #调用系统命令
print(os.path.abspath(‘.‘))  #获取文件的绝对路劲
print(os.path.split(r‘D:\python.py‘))   #将文件名和目录名分割,放入元组中
print(os.path.dirname(r‘D:\python.py‘)) #取目录名
print(os.path.basename(r‘D:\python.py‘)) #取文件名
print(os.path.exists(r‘D:‘))         #判断输入的目录是否存在
print(os.path.isabs(r‘D:\a‘))        #判断输入的是不是一个绝对路径,不能直接跟根目录
print(os.path.isfile(r‘D:\hello.py‘)) #判断是不是文件
print(os.path.isdir(r‘D:\python.py‘)) #判断是不是目录
print(os.path.join(r‘D‘,r‘hello.py‘))  #将多个路劲组合返回
print(os.path.getatime(r‘D:\hello.py‘)) #返回指定文件或目录的最后存取时间(时间戳形式)
print(os.path.getmtime(r‘D:\hello.py‘)) #返回指定文件或目录的最后修改时间(时间戳形式)

(4)将自己写的模块加入到系统的坏境变量中

import os
import sys
path1 = os.path.abspath(__file__)    #获取当前文件所在完整路径
print(path1)
path2 = os.path.dirname(path1)       #获取当前文件父目录
print(path2)
path3 = os.path.dirname(path2)
print(path3)
print(sys.path)
sys.path.insert(0,path3)            #将当前包目录加入到python环境变量中
print(sys.path)
#相当于
#sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

5、Shutil模块

(1)作用:shutil模块提供了大量的文件的高级操作,特别针对文件的拷贝和删除,主要功能为目录和文件操作以及压缩操作。

(2)删除、拷贝应用

import shutil
f1 = open("hehe",encoding="utf-8")
f2 = open("hehe2","w",encoding="utf-8")
# shutil.copyfileobj(f1,f2)   #拷贝文件操作

#移动删除操作
shutil.copyfile("hehe2","hehe3")     #copy文件
shutil.copystat("hehe","hehe3")     #copy文件属性
# shutil.copytree("day5","dayi")     #copy目录
# shutil.rmtree("day5")      #删除目录
shutil.move("hehe3","dayi123")  #移动文件"hehe3"到dayi123

(3)压缩解压用法:

1)用法:shutil.make_archive(base_name, format,...)

2)参数说明:

base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,

format:   压缩包种类,“zip”, “tar”, “bztar”,“gztar”

root_dir:要压缩的文件夹路径(默认当前目录)

owner:    用户,默认当前用户

group:    组,默认当前组

logger:   用于记录日志,通常是logging.Logger对象

3)压缩解压使用

import shutil
import os
#将”D:/python”打包到“D/py.tar.gz”
shutil.make_archive("D:/py",‘gztar‘,root_dir="D:/python")
print(os.listdir(r‘D:/‘))

(3)shutil 对压缩包的处理是调用ZipFile 和 TarFile 两个模块来进行的

1)使用zipfile压缩

import zipfile
z = zipfile.ZipFile(‘dayi123.zip‘,‘w‘)   #以写方式打开dayi123.zip不存在时则创建
z.write(‘hehe‘)  #将文件hehe放入压缩文件
z.write(‘hehe2‘) #将文件hehe2放入压缩文件
z.close()        #关闭dayi123.zip

2)使用zipfile解压

import zipfile
z = zipfile.ZipFile(‘dayi123.zip‘,‘r‘) #以只读方式打开
z.extractall()   #将里面所有内容都解压
z.close()

6、Json及pickle模块

(1)作用:将数据类型转化成字符串或将字符串转化成基本的数据类型:json(各语言通用)及pickle(只适合Python)

(2)json模块

1)将Python的数据类型转化成字符串:

import json
dic = {‘name‘:‘dayi123‘}
print(dic,type(dic))
result = json.dumps(dic)  #将Python的数据类型转化成字符串形式,dump为序列化
print(result,type(result))

2)将字符串转化成基本的数据类型:

import json
s1 = ‘{"k1":123}‘
print(type(s1))
#将Python字符串转化成基本数据类型,单基本数据类型要保持一致,loads为反序列化
result = json.loads(s1)  
print(type(result)

3)应用举例:基于天气的API获取天气相关JSON数据

import requests
import json
response = requests.get(‘http://wthrcdn.etouch.cn/weather_mini?city=北京‘)
response.encoding = ‘utf-8‘

print(response.text)
dic = json.loads(response.text)  #将获取到的天气数据转换成列表
print(type(dic))

4)Json.dump():将列表转化成字符串,并写到另一个文件中:

import json
li = [23,"dayi123",‘hello‘,"ok"] 
json.dump(li,open(‘json_dump‘,‘w‘)) #json.dump()将列表转化为字符串并写入文件中

5)json.load():读取文件中的数据,并转化成列表

import json
li = json.load(open(‘json_dump‘,‘r‘))
print(type(li))

(2)pickle模块

1)概述:pickle用法同json用法,Pickle支持的数据类型比json多,可以对Python的复杂数据类型做操作,更适合于所有类型的序列化,但json仅适用于Python。json更加适合跨语言,适合于基本的数据类型序列化。

2)用法:

import pickle
li = [11,22,33]
r = pickle.dumps(li)         #将列表转化成字节的方式字符串
print(r, type(r))

result = pickle.loads(r)     #读取r字符串中的数据
print(result)
pickle.dump(li, open(‘db‘, ‘wb‘))    #将列表转化成特殊的方式存放在文件中
w = pickle.load(open(‘db‘, ‘rb‘))    #读取文件中的数据
print(w)

7、Shelve模块使用

(1)作用:shelve类似于一个key-value数据库,可以很方便的用来保存python的内存对象,其内部使用pickle来序列化数据,使用shelve可以将一个列表、字典、或者用户自定义的类实例保存到shelv中,下次需要时直接去出来,就是Python一个内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据构造一遍所需要的对象。

(2)用法

import shelve
import datetime
d = shelve.open(‘shelve_test‘)  # 打开一个文件
print(d.get("name"))
print(d.get("info"))
print(d.get("date"))

# info = {‘age‘:22,"job":‘it‘}
#
# name = ["alex", "rain", "test"]
# d["name"] = name  # 持久化列表
# d["info"] = info  # 持久dict
# d[‘date‘] = datetime.datetime.now()
# d.close()

8、configparser模块

(1)作用:用于生成和修改常见配置文档

(2)生成配置:

import configparser

config = configparser.ConfigParser()
config["DEFAULT"] = {‘ServerAliveInterval‘: ‘45‘,
                     ‘Compression‘: ‘yes‘,
                     ‘CompressionLevel‘: ‘9‘}

config[‘bitbucket.org‘] = {}
config[‘bitbucket.org‘][‘User‘] = ‘hg‘
config[‘topsecret.server.com‘] = {}
topsecret = config[‘topsecret.server.com‘]
topsecret[‘Host Port‘] = ‘50022‘  # mutates the parser
topsecret[‘ForwardX11‘] = ‘no‘  # same here
config[‘DEFAULT‘][‘ForwardX11‘] = ‘yes‘
with open(‘example.ini‘, ‘w‘) as configfile:
    config.write(configfile)

(3)读取配置中的内容:

import configparser

config = configparser.ConfigParser()
config.read(‘example.ini‘)      #读取example.ini文件
print(config.sections())          #打印除过“default”项外的其他选项
print(config.defaults())          #打印default选项及下面内容
print(config[‘bitbucket.org‘][‘user‘])  #读取‘bitbucket.org‘下的‘user‘的值
print(config[‘DEFAULT‘][‘Compression‘]) #读取‘DEFAULT‘中‘Compression‘的值
print(‘bitbucket.org‘in config)#判断‘bitbucket.org‘是否存在于example.ini中
for key in config[‘bitbucket.org‘]:  #循环读取config中的key
    print(key)

9、python模块之加密模块hashlib

(1)作用:用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224, SHA256, SHA384, SHA512 ,MD5 算法

(2)基本用法:

import hashlib
hash = hashlib.md5()
# help(hash.update)
hash.update(bytes(‘admin‘,encoding=‘utf-8‘))
print(hash.hexdigest())

(3)加密算法的缺陷及解决办法:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

import hashlib 
 
hash = hashlib.md5(bytes(‘898oaFs09f‘,encoding="utf-8"))
hash.update(bytes(‘admin‘,encoding="utf-8"))
print(hash.hexdigest())

(4)python内置还有一个 hmac 模块,它内部对我们创建 key和内容进行进一步的处理然后再加密

import hmac
 
h =hmac.new(bytes(‘898oaFs09f‘,encoding="utf-8"))
h.update(bytes(‘admin‘,encoding="utf-8"))
print(h.hexdigest())
时间: 2024-10-23 11:40:14

Python中常用的模块的相关文章

python中常用的模块二

一.序列化 指:在我们存储数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式,这个就是序列化, 不同的序列化结果不同,但目的是一样的,都是为了存储和传输. 一,pickle.可以将我们python中的任意数据类型转化成bytes并写入到文件中. 同样也可以把文件中写好的bytes转换回我们的python的数据.这个过程被称为序列化 import pickle class Cat: def __init__(self, name, age): self.name = nam

python中常用的模块的总结

1. 模块和包 a.定义: 模块用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件.(例如:文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py的文件) b.导入方法 import module_name import module_1的本质:是将module_1解释了一遍 也就是将module_1中的所有代码复制给了module_1 from module_n

python中常用的模块1

在python中我们常用的内置模块主要有:os模块,sys模块,random模块,shutil模块,time模块,datetime模块,json模块,pickle模块,shelve模块,xml模块,configparser模块,hashlib模块,suprocess模块,logging模块,re模块等. 第一:os模块 首先我们先说说os模块,os模块主要是起到与操作系统交互的作用,可以分两部分讲:os和os.path 1):os os.getcwd()   获得当前的工作目录 os.chdir

Python中常用的模块(OS模块)

一.Python OS模块介绍 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> import os #导入os模块>>> help(os)   #查看os模块帮助文档,里面详细的模块相关函数和使用方法 二.OS模块重要函数和变量: 1 ).os.sep 更改操作系统中的路径分隔符.2 ).os.getcwd()获取当前路径,这个在Python代码中比较常用.3 ).os.

Python中常用的模块(random模块)

一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).random() 返回0<=n<1之间的随机实数n:2 ).choice(seq) 从序列seq中返回随机的元素:3 ).getrandbits(n) 以长整型形式返回n个随机位:4 ).shuffle(seq[, random]) 原地指定seq序列:5 ).sample(seq, n) 从序列se

python基础7之python中常用的模块的总结

本节大纲: 模块和包 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 一. 模块和包 a.定义: 模块用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件.(例如:文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块的,本

Python中的random模块,来自于Capricorn的实验室

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

Python中re(正则表达式)模块函数学习

今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 RE 是否在字符串刚开始的位置匹配 search() 扫描字符串,找到这个 RE 匹配的位置 findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回 finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回 match() 函数只检查 RE 是否在字符串开始处匹配

Python中的random模块

Python中的random模块 (转载自http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html) Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),