Python学习笔记--标准库篇

模块

一、模块种类


  1. Python标准库
  2. 第三方模块
  3. 自定义模块

Pycharm中,Package和Directory区别: Package含有__init__.py

二、import模块导入

import执行流程和用法
step1. 执行import的文件;
step2. 引入变量名;  
step3. 调用 ```module_name.func_name()```;  

仅当module路径在sys.path中时,可直接用import语句调用。

from...import...用法
  1. from module_name import func_name
  2. from package_1.package_2 import module_name
  3. from package_1.package_2.module_name import func_name
从Package中引用
  1. from package_name import module_name
  2. sys.path添加执行文件所在目录,调用下级module需要使用from语句进行调用。
    Package用于组织模块


三、if __name__ == '__main__'

  1. 用于调用文件测试
  2. 避免文件被调用时执行主逻辑


四、Python标准库常用模块

time
time.time()        # 时间戳,从1970年1月1日0时至今的秒数(Unix诞生)  
time.localtime()   # 结构化时间(当地)
time.gmtime()      # 结构化时间(标准UTC)
time.mktime()      # 将结构化时间转换为时间戳  
time.strftime("%Y/%m/%d %X", time.localtime())       # 将结构化时间转换为字符串时间
time.strptime("2016/12/24/17/50/36", "%Y/%m/%d/%X")  # 将字符串时间转换为结构化时间  
time.asctime()     # 字符串时间
time.ctime()       # 字符串时间
time.sleep()       # 暂停


datetime
datetime.datetime.now()    # 当前日期时间


random
random.random()              
random.randint()
random.randrange()
random.choice()
random.sample()
random.uniform()
random.shuffle()


os
os.getcwd()            # 获取当前工作目录
os.chdir()             # 改变当前脚本的工作目录
os.makedirs()          # 递归生成目录
os.removedirs()        # 递归删除目录(只删除空目录)
os.mkdir()             # 新建单目录
os.rmdir()             # 删除单目录
os.listdir()           # 列出指定目录下的所有子文件和目录(包括隐藏)
os.remove()            # 删除单文件
os.rename()            # 重命名
os.stat()              # 文件状态
os.sep                 # 当前系统路径分隔符
os.linesep             # 当前系统的行终止符
os.pathsep             # 当前平台的用于分割路径的字符
os.system(command)     # 执行命令
os.path.split(path)    # 将path 分割成(目录, 文件名)
os.path.dirname()      # 路径名
os.path.basename()     # 文件名
os.path.exist()        # 判断路径是否存在
os.path.isabs()        # 是否是绝对路径
os.path.isfile()       # 是否是文件
os.path.isdir()        # 是否是目录
os.path.join()         # 拼接路径
os.path.getatime()     # 文件或目录最后的存取时间
os.path.getmtime()     # 文件或目录的最后修改时间
os.path.abspath()      # 绝对路径
os.path.dirname()      # 所属文件夹路径


sys
sys.argv               # 获取命令,返回list
sys.stdout.write()     # 向屏幕输出
sys.path
sys.exit(n)            # 退出
sys.version            # 返回Python版本
sys.maxint             # 最大的int值
sys.platform           # 返回操作系统平台名称


json
json.dumps()           # 写入
json.loads()           # 读取
json.dump()            # 文件操作写入 
json.load()            # 文件操作读取
#  数据结构中必须使用双引号。


pickle
pickle.dumps()
pickle.loads()

# pickle后的内容不可读,对文件需要使用二进制模式读写。  
# 支持的数据类型较json多。


shelve
shelve.open()
# 生成三个文件。


xml
import xml.etree.ElementTree as ET

obj = ET.parse("file.xml")
root = obj.getroot()     # 获取根节点
print(root.tag)     # 获取标签名

for i in root:
    for j in i.iter('year'):  # 选择'year'节点 
        print(j.attrib)  # 获取属性值  
        print(j.text)  # 获取文本内容

        new_year = int(j.text)+1
        j.text = str(new_year)  # 修改文本内容
        j.set("attribute", "value")  # 设置属性

obj.write("file.xml") # 重新写入

for country in root.findall("country"):  # 找到所有country标签
    rank = int(country.find("rank").text)   # 找到rank标签
    if rank > 50:
        root.remove(country)            

obj = ET.Element('root_node')
name = ET.SubElement(obj, 'node_name', attrib={'attr_name':'value'})
xml_obj = ET.ElementTree(obj)  # 生成文档对象
obj.write("file_name", encoding='', xml_declaration=True)


re
r # 原生字符 (raw string),避免Python解释器对规则进行转义。

re.findall()           # 返回列表
re.search()            # 从任意位置开始查找,返回对象
re.match()             # 从起始位置开始查找,返回对象
re.split()             # 分割,返回列表
re.sub()               # 替换,返回替换后的字符串
re.subn()              # 替换并显示替换次数,返回元组
re.finditer()          # 效果与findall相同,返回iterator
group()                # 用于获取match/search对象中的数据


logging
import logging

logging.basicConfig(
    level=logging.DEBUG,   # 设置默认级别
    filename='file_name',  # 设置目标输出位置(文件)
    filemode='w',          # 更改文件打开方式(默认为a)
    format='%(asctime)s [%(lineno)d] %(message)s'
) 
# 日志级别
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')  # 默认从warnning级别开始打印
logging.error('error message')
logging.critical('critical message')

logger = logging.getLogger()  # 创建logger对象
fh = logging.FileHandler()  # 
ch = logging.StreamHandler()  #

fm = loggign.Formatter('%(asctime)s')
fh.setFormatter(fm)
ch.setFormatter(ch)

logger.addHandler(fh)
logger.addHandler(ch)
logger.setLevel('DEBUG')

logger.debug()
logger.info()
logger.warning()
logger.error()
logger.critical()


configparser
import configparser

config = configparser.ConfigParser()     # 实例化config对象  
···
with open('file_name', 'w') as f:
    config.write(f)   # 注意调用方式  

config.read('file_name')
config.options()             # 返回列表
config.items()              # 返回键值对
config.get('key1', 'key2')          # 获取对应的值
config.write(open())       # 写入文件
config.add_section('')     # 新增块
config.set('section', 'key', 'value')   # 在section下添加键值对


hashlib
import hashlib

obj = hashlib.md5('salt'.encode('uf8'))
obj.update('string'.encode('utf8'))
print(obj.hexdigest())  # 位数固定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值