Python 20 常用模块01

常用模块01

1. 模块的简单认识

引入模块的方式:

  1. import 模块
  2. from xxx import 模块

    . 比如, random, os, sys, collections等等. 那我们?前?到的所有模块都是python内

    置的模块

2. collections模块

ollections模块主要封装了?些关于集合类的相关操作. 比如, 我们学过的Iterable,

Iterator等等. 除了这些以外, collections还提供了?些除了基本数据类型以外的数据集合类

型. Counter, deque, OrderDict, defaultdict以及namedtuple

  • Counter

    counter是一个计数器. 主要用来计数

    计算一个字符串中每个字符出现的次数:

普通的:
s = "alex like pig"
dic = {}
for c in s:
dic[c] = dic.get(c, 0) + 1
print(dic)
简化版:
s = "alex like pig"
print(Counter(s)) # 获取到的结果可以像字典一样进行使用 [key]
  • deque 双向队列

    (重点)说双向队列之前我们需要了解两种数据结构. 1. 栈, 2. 队列

  1. 栈: FILO. 先进后出 -> 堆 货物
import queue
q = queue.Queue()
q.put("李嘉诚")
q.put("张开")
q.put("张毅")
print(q)
print(q.get())
print(q.get())
print(q.get())
  1. 队列: FIFO. 先进先出 -> 走 隧道
from collections import deque
q = deque()
q.append("张开") # 右侧添加
q.append("包尔")
q.appendleft("赵廷") # 左侧添加
q.appendleft("还我圆圆")
print(q)
print(q.pop()) # 右侧删除
print(q.popleft()) # 左侧删除
  1. namedtuple 命名元组
from collections import namedtuple
# 自己定义了一个元组, 如果灵性够好, 这其实就是创建了一个类
nt = namedtuple("point", ["x", "y"])
p = nt(1, 2)
print(p)
print(p.x)
print(p.y)
  1. orderdict和defaultdict
  • orderdict 顾名思义. 字典的key默认是无序的. OrderedDict是有序的
dic = {‘a‘:‘娃哈哈‘, ‘b‘:‘薯条‘, ‘c‘:‘胡辣汤‘}
print(dic)
from collections import OrderedDict
od = OrderedDict({‘a‘:‘娃哈哈‘, ‘b‘:‘薯条‘, ‘c‘:‘胡辣汤‘})
print(od)
  • defaultdict: 可以给字典设置默认值. 当key不存在时. 直接获取默认值
from collections import defaultdict
dd = defaultdict(list) # 默认值list
print(dd[‘娃哈哈‘]) # [] 当key不存在的时候. 会自动执行构造方法中传递的内容.

3. time时间模块

import time
print(time.time()) # 1538927647.483177 系统时间
s = time.strftime("%Y-%m-%d %H:%M:%S") # 必须记住
print(s)
    1. 时间戳(timestamp). 时间戳使?的是从1970年01月01日 00点00分00秒到现在

      一共经过了多少秒... 使用float来表示

    1. 格式化时间(strftime). 这个时间可以根据我们的需要对时间进行任意的格式化.
    1. 结构化时间(struct_time). 这个时间主要可以把时间进行分类划分. 比如. 1970

      年01月01日 00点00分00秒

日期格式化的标准:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期?为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

看下结构化时间

print(time.localtime())
结果:
time.struct_time(tm_year=2017, tm_mon=05, tm_mday=8, tm_hour=10, tm_min=24,
tm_sec=42, tm_wday=0, tm_yday=126, tm_isdst=0)
t = time.localtime(1888888888) # 结构化时间
s = time.strftime("%Y-%m-%d %H:%M:%S", t) # 格式化这个时间
print(s)
结果:
2029-11-09 11:21:28
s = "2020-10-01 12:18:12"
t = time.strptime(s, "%Y-%m-%d %H:%M:%S") # 转化成结构时间
print(time.mktime(t)) # 转换成时间戳
结果:
1601525892.0

计算时间差

import time
time_old = time.mktime(time.strptime("2018-11-19 12:00:00","%Y-%m-%d %H:%M:%S"))
time_new = time.mktime(time.strptime("2018-11-19 14:00:00","%Y-%m-%d %H:%M:%S"))
time_now = time_new-time_old
one_time_now = time.gmtime(time_now)
print(one_time_now)
print("过去了%d年%d月%d日%d小时%d分%d秒" % (one_time_now.tm_year-1970,one_time_now.tm_mon-1,
                                  one_time_now.tm_mday-1,one_time_now.tm_hour,one_time_now.tm_min,one_time_now.tm_sec))

4. random模块

import random
print(random.randint(1,9))  # 范围内的随机数
print(random.random()) # 0,1 的小数
print(random.uniform(3,10))  # 3,10 之间的随机小数
print(random.randrange(1,10,2))  # 从奇数列表中随机一个
print(random.choice([1,2,["哈哈","呵呵"],3,4]))  # 随机选择一个
print(random.sample(range(30),2))  # 列表 选2个
# shuffle 打乱顺序
lst = ["周杰伦", "昆凌", "马化腾", "马丽", "沈腾", "秋雅"]
random.shuffle(lst)
print(lst)

5. os模块

os.makedirs(‘dirname1/dirname2‘) 可行成多层递归目录
os.removedirs(‘dirname1‘) 若?录为空,则删除,并递归到上?级?录,如若也为空,则删
除,依此类推
os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中
rmdir dirname
os.listdir(‘dirname‘) 列出指定?录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat(‘path/filename‘) 获取文件/目录信息
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command).read() 运行shell命令,获取执行结果
os.getcwd() 获取当前?作?录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd

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所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
# 特殊属性:
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘

os.stat() 属性解读:

stat 结构:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在
其它系统上(如Windows)是创建时间(详细信息参见平台的文档)

6. sys模块

所有和python解释器相关的都在sys模块.

sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
sys.version 获取Python解释程序的版本信息
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称

原文地址:https://www.cnblogs.com/NATO/p/9984483.html

时间: 2024-10-07 23:51:10

Python 20 常用模块01的相关文章

Python(六)-常用模块

目录: 1.模块介绍 2.time & datetime模块 3.rendom 4.os 5.sys 6.shutil 7.json & picle 8.shelve 9.xml处理 10.yaml处理 11.chonfigparser 12.hashlib 13.subprocess 14.logging模块 15.re正则表达式 第一章:模块介绍 模块,用一坨代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用

python中常用模块详解二

log模块的讲解 1 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: 2 3 logger提供了应用程序可以直接使用的接口API: 4 handler将(logger创建的)日志记录发送到合适的目的输出: 5 formatter决定日志记录的最终输出格式 6 filter提供了细度设备来决定输出哪条日志记录: 7 8 logger 9 每个程序在输出信息之前都要获得一个Logger.Logger通常对应了程序的模块名, 10 比如聊天工具的图形界面模块

python基础--常用模块与面向对象基础

1常用模块 1.1 xml xml是实现不同语言或程序之间进行数据交换的协议 xml的格式如下: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year>2008</year> <gdppc>141100</gdp

python编程常用模块记录

time(时间相关模块) logging(日志模块) [time 模块] 与时间有关还有datetime.calendar等 time模块常用于获取当前系统日期时间,该值可用于日志文件命名或者任何sleep函数让进程挂起. 常用用法: 一.现在需要知道当前时间,转换为字符串: #! /usr/bin/env python #coding=utf-8 import time print time.strftime('%Y-%m-%d %A %X %Z',time.localtime(time.ti

Python 22 常用模块03

常用模块03 re 1. 正则表达式 正则表达式是对字符串操作的各种逻辑公式. 我们一般使用正则表达式对字符串进行匹配和过滤 字符组 字符组很简单用[]括起来. 在[]中出现的内容会被匹配. 例如:[abc] 匹配a或b或c 如果字符组中的内容过多还可以使用- , 例如: [a-z] 匹配a到z之间的所有字母 [0-9] 匹配所有阿拉伯数字 简单元字符 基本的元字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空字 \d 匹配数字 \n 匹配一个换行符 \t

Python之常用模块(六)re模块与logging模块和包

5.10 re模块 re(正则)简介:正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. re元字符 元字符 匹配内容 \w 匹配字母(包含中文)或数字或下划线 \W 匹配非字母(包含中文)或数字或下划线 \s 匹配任意的空白符 \S 匹配任意非空白符 \d 匹配数字 \D 匹配非数字 \A 从字符串开头匹配 \n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开始 $ 匹配字符串的结尾 . 匹配任意字符,除了

python入门:常用模块—模块,包介绍

一.什么是模块 为了编写可维护的代码,把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,编程语言采用这种组织方式.在python中,一个.py文件就称之为一个模块. 二.使用模块有什么好处 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.经常引用其他模块,包括Python内置的模块和来自第三方的模块 使用模块还可以避免函数名和变量名冲突.每个模块有独立的命名空间 三.模块分类 内置标准模块(又称标准库)执行hel

Python自动化 【第五篇】:Python基础-常用模块

目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re正则表达式 1.      模块介绍 1.1    定义 能够实现某个功能的代码集合(本质是py文件)  test.p的模块名是test包的定义:用来从逻辑上组织模块,本质就是一个目录(必须带有一个__init__.py文件) 1.2    导入方法 a) Import module b) Impo

Python之路-python(常用模块学习)

模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib re正则表达式 1.模块: 定义:其实模块简单说就是一堆代码实现某个功能,它们是已经写好的.py文件.只需要用import应用即可. 分类: 1.自定义模块 2.内置标准模块(又称标准库) 3.开源模块    1.自定义模块,就是自己写的.py文件为了实现某个功能.    2.内置模块,就是python自身已经写好的某个功能,例如