Article directory
foreword
Past review:
- Python Series Tutorial – Introduction to Python3 (1)
- Python Series Tutorials – Python3 Environment Construction (2)
- Python Series Tutorial – Python3 VScode (3)
- Python Series Tutorials – Basic Grammar of Python3 (4)
- Python Series Tutorial – Python3 Basic Data Types (5)
- Python Series Tutorials--Python3 Data Type Conversion (6)
- Python Series Tutorials--Python3 Derivation (7)
- Python Series Tutorials--Python3 Interpreter and Annotations (8)
- Python series of tutorials--Python3 what is an operator (9)
- Python Series Tutorials--Python3 Numbers (Number) (10)
- Python Series Tutorials--Python3 Strings (11)
- Python Series Tutorials--Python3 List (12)
- Python Series Tutorials--Python3 Tuples (13)
- Python Series Tutorials--Python3 Dictionary (14)
- Python Series Tutorials--Python3 Collection (15)
- Python Series Tutorials--Python3 Conditional Control (16)
- Python Series Tutorial--Python3 Loop Statement (17)
- Python Series Tutorials--Python3 Programming Step One (18)
- Python Series Tutorials--Python3 Derivation (19)
- Python Series Tutorials--Python3 Iterators and Generators (20)
- Python Series Tutorials--Python3 Functions (21)
- Python Series Tutorials--Python3 Data Structure (22)
- Python Series Tutorials--Python3 Module (23)
- Python Series Tutorials--Python3 Input and Output (24)
- Python series of tutorials--Python3 File (file) method (25)
- Python Series Tutorials--Python3 OS File/Directory Method (26)
- Python Series Tutorials--Python3 Errors and Exceptions (27)
- Python Series Tutorials--Python3 Object-Oriented (28)
- Python Series Tutorials--Python3 Namespace and Scope (29)
The Python standard library is very large and provides a wide range of components. Using the standard library we can let you easily complete various tasks.
The following are some modules in the Python3 standard library:
-
os module: The os module provides many functions for interacting with the operating system, such as creating, moving, and deleting files and directories, and accessing environment variables.
-
sys module: The sys module provides functionality related to the Python interpreter and the system, such as the interpreter's version and path, and information related to stdin, stdout, and stderr.
-
time module: The time module provides functions for working with time, such as getting the current time, formatting date and time, timing, etc.
-
datetime module: The datetime module provides more advanced date and time processing functions, such as handling time zones, calculating time differences, calculating date differences, etc.
-
random module: The random module provides functions for generating random numbers, such as generating random integers, floating point numbers, sequences, etc.
-
math module: The math module provides mathematical functions such as trigonometric functions, logarithmic functions, exponential functions, constants, etc.
-
re module: The re module provides regular expression processing functions, which can be used for text search, replacement, segmentation, etc.
-
json module: The json module provides JSON encoding and decoding functions, which can convert Python objects to JSON format and parse Python objects from JSON format.
-
urllib module: The urllib module provides functions for accessing web pages and processing URLs, including downloading files, sending POST requests, and handling cookies.
operating system interface
The os module provides many functions associated with the operating system.
>>> import os
>>> os.getcwd() # 返回当前的工作目录
'C:\\Python34'
>>> os.chdir('/server/accesslogs') # 修改当前的工作目录
>>> os.system('mkdir today') # 执行系统命令 mkdir
0
It is recommended to use the "import os" style instead of "from os import *". This ensures that os.open(), which varies from OS to OS, does not override the built-in function open().
The built-in dir() and help() functions are very useful when working with large modules like os:
>>> import os
>>> dir(os)
<returns a list of all module functions>
>>> help(os)
<returns an extensive manual page created from the module's docstrings>
The :mod:shutil module provides an easy-to-use high-level interface for everyday file and directory management tasks:
>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
>>> shutil.move('/build/executables', 'installdir')
file wildcard
The glob module provides a function for generating file listings from directory wildcard searches:
>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']
command line parameters
Common utility scripts often invoke command-line arguments. These command-line parameters are stored in the argv variable of the sys module in the form of a linked list. For example, after executing "python demo.py one two three" on the command line, you can get the following output:
>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']
Error output redirection and program termination
sys also has stdin, stdout and stderr attributes, the latter can be used to display warning and error messages even when stdout is redirected.
>>> sys.stderr.write('Warning, log file not found starting a new one\n')
Warning, log file not found starting a new one
Directed termination of most scripts uses "sys.exit()".
string regular match
The re module provides regular expression tools for advanced string processing. For complex matching and processing, regular expressions provide concise, optimized solutions:
>>> 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'
If only simple functionality is needed, string methods should be considered first, as they are very simple and easy to read and debug:
>>> 'tea for too'.replace('too', 'two')
'tea for two'
math
The math module provides access to the underlying C library of functions for floating-point arithmetic:
>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0
random provides tools for generating random numbers.
>>> 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)
4
access to the internet
There are several modules for accessing the Internet and handling network communication protocols. Two of the simplest are urllib.request for handling data received from urls and smtplib for sending emails:
>>> from urllib.request import urlopen
>>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
... 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('[email protected]', '[email protected]',
... """To: [email protected]
... From: [email protected]
...
... Beware the Ides of March.
... """)
>>> server.quit()
Note that the second example requires a running mail server locally.
date and time
The datetime module provides both simple and complex methods for date and time manipulation.
While supporting date and time arithmetic, the implementation focuses on more efficient processing and formatting of output.
This module also supports time zone handling:
>>> # 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
data compression
The following modules directly support common data packing and compression formats: zlib, gzip, bz2, zipfile, and 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
performance metrics
Some users are interested in knowing the performance differences between different approaches to the same problem. Python provides a metrics tool that provides direct answers to these questions.
For example, exchanging elements using tuple packing and unpacking looks more attractive than using traditional methods, and timeit proves that modern methods are faster.
>>> 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
The :mod:profile and pstats modules provide time measurement tools for larger chunks of code relative to the fine-grainedness of timeit.
test module
One of the ways to develop high-quality software is to develop test code for each function, and to test frequently during the development process
The doctest module provides a tool that scans modules and executes tests against docstrings embedded in programs.
The test construct is as simple as cutting and pasting its output into the docstring.
It enforces documentation with user-supplied examples, allowing the doctest module to confirm that the results of the code are consistent with the documentation:
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() # 自动验证嵌入测试
The unittest module is not as easy to use as the doctest module, but it can provide a more comprehensive set of tests in a single file:
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)
self.assertRaises(ZeroDivisionError, average, [])
self.assertRaises(TypeError, average, 20, 30, 70)
unittest.main() # Calling from the command line invokes all tests
What we have seen above is only part of the modules in the Python3 standard library, and there are many other modules that can be viewed in the official documentation for the complete standard library documentation: https://docs.python.org/zh-cn/3/library/index .html