python3.7.x介绍-7标准库(代码片段)

Joey-Zhang Joey-Zhang     2022-12-12     651

关键词:

标准库介绍

操作系统接口

>>> import os
>>> os.getcwd()      # Return the current working directory
'C:\\\\Python37'
>>> os.chdir('/server/accesslogs')   # Change current working directory
>>> os.system('mkdir today')   # Run the command mkdir in the system shell

>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
'archive.db'
>>> shutil.move('/build/executables', 'installdir')
'installdir'
--------------------- 

文件通配符

>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']

命令行参数

通用实用程序脚本通常需要处理命令行参数。这些参数作为列表存储在sys模块的argv属性中。

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

错误输出重定向和程序终止

>>> sys.stderr.write('Warning, log file not found starting a new one\\n')
Warning, log file not found starting a new one

字符串模式匹配

re模块为高级字符串处理提供正则表达式工具

>>> import re
>>> re.findall(r'\\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\\b[a-z]+) \\1', r'\\1', 'cat in the the hat')
'cat in the hat'

数学

math模块提供对浮点数学的底层C库函数的访问

>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0

>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(range(100), 10)   # sampling without replacement
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random()    # random float
0.17970987693706186
>>> random.randrange(6)    # random integer chosen from range(6)

>>> import statistics
>>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
>>> statistics.mean(data)
1.6071428571428572
>>> statistics.median(data)
1.25
>>> statistics.variance(data)
1.3720238095238095

Internet 访问

有许多模块可用于访问互联网和处理互联网协议。其中两个最简单的是用于从URL检索数据的urllib.request和用于发送邮件的smtplib:

>>> from urllib.request import urlopen
>>> with urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl') as response:
...     for line in response:
...         line = line.decode('utf-8')  # Decoding the binary data to text.
...         if 'EST' in line or 'EDT' in line:  # look for Eastern Time
...             print(line)

<BR>Nov. 25, 09:43:32 PM EST

>>> import smtplib
>>> server = smtplib.SMTP('localhost')
>>> server.sendmail('soothsayer@example.org', 'jcaesar@example.org',
... """To: jcaesar@example.org
... From: soothsayer@example.org
...
... Beware the Ides of March.
... """)
>>> server.quit()

日期和时间

>>> # dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # dates support calendar arithmetic
>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368

数据压缩

模块直接支持通用数据存档和压缩格式,包括:zlib,gzip,bz2,lzma,zipfile和tarfile

>>> import zlib
>>> s = b'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
b'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979

性能评估

一些Python用户对了解同一问题的不同方法的相对性能产生了浓厚的兴趣。 Python提供了一种可以立即回答这些问题的测量工具。

>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791

质量控制

doctest模块提供了一个工具,用于扫描模块并验证程序文档字符串中嵌入的测试。 测试构造就像将典型调用及其结果剪切并粘贴到文档字符串一样简单。 这通过向用户提供示例来改进文档,并且它允许doctest模块确保代码保持对文档的真实性:

def average(values):
    """Computes the arithmetic mean of a list of numbers.

    >>> print(average([20, 30, 70]))
    40.0
    """
    return sum(values) / len(values)

import doctest
doctest.testmod()   # automatically validate the embedded tests

unittest模块不像doctest模块那样轻松,但它允许在单独的文件中维护更全面的测试集:

import unittest

class TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        with self.assertRaises(ZeroDivisionError):
            average([])
        with self.assertRaises(TypeError):
            average(20, 30, 70)

unittest.main()  # Calling from the command line invokes all tests

python3.7.x介绍-1概述(代码片段)

...代码或二进制文件库使用Python解释器通常安装在c:\\python37Python命令行示例:。python-c命令[arg]…python-mmodule[arg]…参数传递。通过importsys访问参数列 查看详情

python3.7.x介绍-5错误和异常处理(代码片段)

错误和异常处理语法错误语法错误(也称为解析错误)可能是您在学习Python时最常见的问题:>>>whileTrueprint('Helloworld')File"<stdin>",line1whileTrueprint('Helloworld')^SyntaxError:inva 查看详情

python3.7.x介绍-6类(代码片段)

类类提供了将数据和功能捆绑在一起的方法。创建新类会创建一种新类型的对象,从而允许创建该类型的新实例。每个类实例都可以附加属性以保持其状态。类实例还可以具有用于修改其状态的方法(由其类定义)。... 查看详情

python3.7.x介绍-4输入和输出(代码片段)

输入和输出等好的输出格式控制到目前为止,我们遇到了两种写入值的方法:表达式语句和print()函数。要使用格式化的字符串文字,请在开始引号或三引号之前键入一个带有f或F的字符串。>>>year=2... 查看详情

标准单元库(下)(代码片段)

文章目录3.5状态相关时序模型(state-dependentmodels)3.6黑盒接口时序模型(interfacetimingmodelforablackbox)3.7高级时序建模(advancedtimingmodeling)3.7.1接收引脚电容(receiverpincapacitance)3.7.2输出电流(outputcurrent)3.7.3串扰噪声分析(modelsforcros 查看详情

标准单元库(下)(代码片段)

文章目录3.5状态相关时序模型(state-dependentmodels)3.6黑盒接口时序模型(interfacetimingmodelforablackbox)3.7高级时序建模(advancedtimingmodeling)3.7.1接收引脚电容(receiverpincapacitance)3.7.2输出电流(outputcurrent)3.7.3串扰噪声分析(modelsforcros 查看详情

c++标准库stl--stl体系结构基础介绍(代码片段)

STL体系结构基础介绍文章内容为侯捷老师的《C++标准库与泛型编程》的学习笔记文章目录STL体系结构基础介绍代码示例容器分类vector关于vector的动态扩充deque红黑树multisetmultimaphashTableunordered_multisetallocator组成:容器ÿ... 查看详情

初探python标准库~八个自带模块的妙用(代码片段)

...都可以通过这些标准库或者三方库直接解决。下面我们先介绍Python标准库中的一些常用模块,后面我们再陆陆续续为大家介绍Python常用三方库的用途和用法。目录前言base64-Base64编解码模块collections-容器数据类型模块hashlib-哈... 查看详情

初探python标准库~八个自带模块的妙用(代码片段)

...都可以通过这些标准库或者三方库直接解决。下面我们先介绍Python标准库中的一些常用模块,后面我们再陆陆续续为大家介绍Python常用三方库的用途和用法。目录前言base64-Base64编解码模块collections-容器数据类型模块hashlib-哈... 查看详情

stl基础--基本介绍(代码片段)

为什么要使用C++标准库/**为什么使用C++标准库:*1.代码重用,不用重新造轮子*2.效率(快速,且使用更少的资源).现代C++编译器经常对C++标准库的代码有优化*3.准确,更少的bug*4.简洁,可读性好;减少控制流*5.标准化,保证可用*6.... 查看详情

标准单元库(代码片段)

...目录3.1引脚电容(pincapacitance)3.2时序模型(timingmodeling)本章介绍库(library)里单元描述中所提供的时序信息。单元可以是标准单元、IO缓冲器或者是如USB内核这样的复杂IP。除时序信息外,库单元描述中还包含一些其它... 查看详情

c语言文件的基本介绍(代码片段)

基本介绍输入流与输出流重点在C程序(内存)的数据移动方向对于C程序(内存)输入数据:输入流输出数据:输出流输入和输出C标准库标准输入输出库标准文件getchar()&putchar()函数代码#include<stdio.h>#include<stdlib.h>//文件--getchar... 查看详情

python标准库之json编码和解码器『详解』(代码片段)

...器文章目录Python标准库之json编码和解码器一、Pythonjson库介绍二、导入json库三、Python对应JSON数据类型四、基本使用「重点」🧊1、序列化操作2、反序列化操作五、编码器和解码器🥃六、异常🧃参考资料💖相关博... 查看详情

python标准库——os模块(代码片段)

...;让技术无限发散。os模块python标准库——os模块1.os库基本介绍2.os库之路径操作3.os库之进程管理4.os库之环境参数5.案例总结  目前,计算机上主流的操作系统有Windows、Unix、 查看详情

c++标准模板库stl队列queue使用方法与应用介绍(代码片段)

queuequeue模板类的定义在<queue>头文件中。与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型。定义queue对... 查看详情

python3.9标准库math中的函数汇总介绍(53个函数和5个常数)(代码片段)

...重复工作。本篇博文我们来了解Python标准库的math函数。Python3.9的math库的官方文档链接:https://docs.python.org/3.9/library/math.html中文版链接:https://docs.python. 查看详情

go语言系列之标准库log(代码片段)

Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。使用Loggerlog包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print... 查看详情

图像处理标准库pillow(代码片段)

...在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。安装pillowpycharm安装 查看详情