标准库和第三方库第一手资料:

在线: 官方文档(https://docs.python.org/

离线:交互式解释器(dir()、help()函数),IPython(tab键提示、?、??)

一、             日期和时间(https://docs.python.org/3/library/datetime.html

datetime模块

date类-实例属性:

year

month

day

time类-实例属性:

hour

minute

second

microsecond

datetime类

date()实例方法->date对象

time()实例方法->time对象

now()类方法->datetime对象

strftime(str_format)实例方法->(datetime->str)

Y:4位年份

y:后2位年份

m:月份

d:日(月内第几天)

H:小时(24小时制)

I:小时(12小时制)

M:分钟

S:秒

f:微秒

strptime(dt_str, str_format)类方法->(str->datetime)

timedelta类(时间差,两个datetime对象 相减 得到 timedelta对象)

days属性

seconds属性

microseconds属性

total_seconds()方法

from datetime import  datetime, timedelta

dt_begin = datetime.now()

for i in range(10 ** 8):

temp = 3.2 / 2.3

dt_end = datetime.now()

dt_diff = dt_end - dt_begin

print('花费 {0.seconds} 秒, {0.microseconds} 毫秒'.format(dt_diff))

time():时间戳(1970.01.01 00:00:00到现在经过的秒)

sleep(seconds):延时

calendar

setfirstweekday(weekday),设置每周的起始日期码。0(星期一)到6(星期日)。

calendar(year,w=2,l=1,c=6):返回一个多行字符串格式的year年年历。

3个月一行,间隔距离为c。

每日宽度间隔为w字符。

每行长度为21* W+18+2* C。

l是每星期行数。

isleap(year):判断闰年

weekday(year, month, day) :返回给定日期的星期日期码

monthrange(year, month):返回给定月份的日期范围(元组:(第一天的星期日期码,月天数))

二、             数据格式

JSON:JavaScript对象表示法。(json在Python中叫做dict,在JS中叫做json)。

Json字符串(str_obj):所有的字符串只能用双引号(")不能用单引号(')。

Json字符串必须要有内容(len(str_obj) > 0),不能是空字符串('')

json

load(fp):文件对象->python内置对象

loads(str_obj):str->python内置对象(js:JSON.parse(str_obj))

object_pairs_hook,,控制数据如何转换,是一个继承自字典dict的类

dump(obj, fp):python内置对象->文件对象

dumps(obj):python内置对象->str(js: JSON.stringify(obj, null, 4))

ensure_ascii: (默认值:True,会将CJK字符转成Unicode嘛,以符合ASCII规范)。设置为False,可保证原样输出。

indent:(默认值:None,将会没有缩进和多余的空白输出,全部挤到一行。)。调试中,一般设置为4,和Python中风格一致。正式环境(比如web后端输出),不需要缩进。

csv

writer(wfp) (写入器) wfp: 可写的文件对象(open: newline)

writerow(list_obj)

writerows(2d_list_obj)

reader(rfp) (读取器) rfp: 可读的文件对象

pickle

dump(obj, wfp):(obj -> wfp),无返回值

dumps(obj):(obj -> bytes),返回值bytes类型

load(rfp):(rfp -> obj),返回值为obj,打开的必须是Python的pickle生成的文件。

loads(bytes_obj):(bytes -> obj),返回值为obj,加载的必须是Python的pickle的字节串,可以是dumps()方法生成的,也可以是从dump()方法生成的文件中以二进制方式读取的。

说明:

obj为Python内置类型(list、dict、str等)对象

wfp为可写的文件对象

rfp为可读的文件对象

bytes为二进制字符串(字节串)

三、             系统调用

os

getenv():获取环境变量

putenv():设置环境变量

environ 从系统启动时开始加载的环境变量(数据共享),dict兼容类型,可修改。

注意: os._Environ中有一个字典,字典中存储了环境变量,在Python进程启动时,就会获取系统中的环境变量,放入其中。

system():系统调用,需要传递一个必须的参数,字符串类型。

sep:目录分隔符(Windows: \, Linux和Max OS X: /)

linesep:行结束符(行分隔符)

sys

argv:命令行参数

path: Python中import时的搜索路径,list类型,可修改

modules:Python中已经加载了的模块,dict类型,可修改

stdin/stdout/stderr:标准 输入、(正常)输出、错误输出

platform

platform():平台

version():内核版本

architecture():CPU架构

machine():操作系统类型(I386,AMD64)。

node():本机网络名

processor():处理器信息

system():系统(Windows)

uname():汇总信息

python_version():Python版本

补充

第三方-日期时间操作库:python-dateutil

安装:

pip install python-dateutil

解析时间:

import dateutil.parser as dt_parser

dt_str = '2018-08-09 12:23:34'

dt = dt_parser.parse(dt_str)

第三方-数据操作库:pandas

安装:

pip install pandas

解析时间:

import pandas as pd

csv_path = r'C:\User\XYZ\abc.csv'

df = pd.read_csv(csv_path)

标准库-读取json到有序字典:

import json

from collections import OrderedDict

dict_obj = json.loads(str_data, object_pairs_hook=OrderedDict)

Json扩展应用(豆瓣标签爬虫):

# -*- coding: utf-8 -*-

import json

import requests

resp = requests.get('https://movie.douban.com/j/search_tags?type=movie&source=')

if resp.ok:

try:

data = json.loads(resp.text)

except Exception as e:

print(e)

else:

print(data)

else:

print('请求失败')

bytes与str转换:

bytes_obj. decode(encoding='utf-8', errors='strict')

bytes.decode()参数:

encoding:指明字节串是以哪种编码保存的。默认值为'utf-8'。

errors:如果出错了,如何处理。可能的值为'strict'(严格处理,引发异常)、'ignore'(忽略,程序继续)、'replace'(替换,程序继续)。默认值为'strict'。

str.encode(=, ='strict')

encoding:指定了转成哪种编码。默认值为'utf-8'。

errors:如果出错了,如何处理。默认值为'strict'。

chardet:第三方库,专用于编码判断,使用步骤如下:

  1. 以二进制方式读取文件,得到字节串
  2. 调用chardet.detect()方法,参数为上一步得到的字节串。
  3. 识别结果为字典类型,有一个名为'encoding',就是识别到的编码。但是,有可能判断失败,所以需要判断结果是否有效。

chardet示例代码

# -*- coding: utf-8 -*-

# 模块倒入

try:

import chardet

except ImportError:

# 如果导入第三方库出错,一般是未安装

# 调用pip安装

import os

os.system('pip install chardet')

# 安装完成后重新导入

import chardet

# 要判断编码的内容

bys = b'hehe'

# 判断编码

det = chardet.detect(bys)

# 获取编码

encoding = 'None'

# 可能检测失败,需要判断

if isinstance(det, dict) and 'encoding' in det:

encoding = det['encoding']

# 如果获取到了编码

if bool(encoding):

# TODO:得到编码后做的事,以下是示例

# 就算正确得到了编码,也要防止存在不可解码的字符

# 所以需要设置errors参数值为'ignore'或'replace',一般用前者

str_obj = bys.decode(encoding, errors='ignore')

print(str_obj)

# TODO: 对字符串操作

pass

else:

print('编码检测失败,请手动处理')

python 常用标准库的更多相关文章

  1. Python常用标准库(pickle序列化和JSON序列化)

    常用的标准库 序列化模块 import pickle 序列化和反序列化 把不能直接存储的数据变得可存储,这个过程叫做序列化.把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化. 在文件中 ...

  2. python常用标准库(时间模块 time和datetime)

    常用的标准库 time时间模块 import time time -- 获取本地时间戳 时间戳又被称之为是Unix时间戳,原本是在Unix系统中的计时工具. 它的含义是从1970年1月1日(UTC/G ...

  3. python常用标准库(os系统模块、shutil文件操作模块)

    常用的标准库 系统模块 import os 系统模块用于对系统进行操作. 常用方法 os模块的常用方法有数十种之多,本文中只选出最常用的几种,其余的还有权限操作.文件的删除创建等详细资料可以参考官方文 ...

  4. python常用标准库(压缩包模块zipfile和tarfile)

    常用的标准库 在我们常用的系统windows和Linux系统中有很多支持的压缩包格式,包括但不限于以下种类:rar.zip.tar,以下的标准库的作用就是用于压缩解压缩其中一些格式的压缩包. zip格 ...

  5. python常用标准库(math数学模块和random随机模块)

    常用的标准库 数学模块 import math ceil -- 上取整 对一个数向上取整(进一法),取相邻最近的两个整数的最大值. import math res = math.ceil(4.1) p ...

  6. python常用标准库

    -------------------系统内建函数------------------- 1.字符串     str='这是一个字符串数据测试数据'对应     str[0]:获取str字符串中下标为 ...

  7. Python常用标准库之datetime、random、hashlib、itertools

    库:具有相关功能模块的集合 import sys.builtin_module_names #返回内建模块的名字modules 查看所有可用模块的名字 1.1.1获取当前日期和时间 from date ...

  8. 【循序渐进学Python】11.常用标准库

    安装完Python之后,我们也同时获得了强大的Python标准库,通过使用这些标准库可以为我们节省大量的时间.这里是一些常用标准库的简单说明.更多的标准库的说明,可以参考Python文档 sys 模块 ...

  9. Python的标准库介绍与常用的第三方库

    Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...

随机推荐

  1. 第二章 C#语法基础(2.1C#语言的数据类型二)

    数据类型案例说明 一.数据类型与变量(计算整数10与20的和) namespace ConsoleApp1 { class Program { static void Main(string[] ar ...

  2. mysql 启动失败,数据恢复

    mysql 启动失败,数据恢复 2017年02月13日 16:46:36 阅读数:621 Forcing InnoDB Recovery提供了6个等级的修复模式,需要注意的是值大于3的时候,会对数据文 ...

  3. 计算机信息系统安全保护等级划分准则(GB 17859-1999)

    概述 计算机信息系统安全保护等级划分准则(GB 17859-1999) 1 范围 本标准规定了计算机系统安全保护能力的五个等级,即: 第一级:用户自主保护级: 第二级:系统审计保护级: 第三级:安全标 ...

  4. VUE 进行微信支付,解决 微信支付URL未注册

    使用history方式 比较坑吧就不吐槽了,说下实现方式 需要解决问题: 1.因为我的微信支付授权路由是:m.xxxx.com,this.$router.push('xxx')之后经常出现 [微信支付 ...

  5. 记一次sql server 2005访问http接口,并解析json的过程

    记一次sql server 2005访问http接口,并解析json的过程  JSON解析官方网站:https://www.red-gate.com/simple-talk/sql/t-sql-pro ...

  6. sqlserver存储过程sp_send_dbmail邮件(html)实际应用

    前段时间因工作需求,特地学习了下sp_send_dbmail的使用,发现网上的示例对我这样的菜鸟太不友好/(ㄒoㄒ)/~~,好不容易完工来和大家分享一下,不谈理论,只管实践! 如下是实际需求: -- ...

  7. Lepus监控之安装部署

    PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行.但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持.我们目前提供的技术支持 ...

  8. Chapter4 复杂度分析(下):浅析最好,最坏,平均,均摊时间复杂度

    四个复杂度分析: 1:最好情况时间复杂度(best case time complexity) 2:最坏情况时间复杂度(worst case time complexity) 3:平均情况时间复杂度( ...

  9. shell脚本(二)

              shell脚本(二)——变量 一.定义:用来存放各种数据,编程语言组成部分 变量的命名规则: 变量名由数字 字母下划线组成 必须以字母或者下划线开头 不能使用shell里面的关键词 ...

  10. C# 委托和泛型

    委托定义: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有 ...