一、标准库简介
Python标准库是一组在Python解释器中自带的模块和函数,提供了丰富的功能和工具,可以用来处理各种任务和问题。
以下是一些常用的Python标准库及其功能的简要介绍:
-
os:提供了与操作系统交互的功能,比如文件和目录操作、进程管理等。
-
sys:提供了与Python解释器交互的功能,比如获取命令行参数、修改运行时环境等。
-
math:提供了数学运算相关的函数,比如三角函数、指数函数、对数函数等。
-
random:提供了生成随机数的功能。
-
datetime:提供了日期和时间处理的功能,比如获取当前时间、格式化时间、计算时间差等。
-
json:提供了JSON格式的编码和解码功能。
-
urllib:提供了对URL进行请求和操作的功能。
-
re:提供了正则表达式的功能,用于匹配和处理字符串。
-
collections:提供了更高级别的数据结构,比如有序字典、命名元组等。
-
itertools:提供了用于迭代操作的工具函数。
-
gzip、zipfile:提供了对压缩文件的操作功能。
-
sqlite3:提供了对SQLite数据库的操作功能。
-
multiprocessing:提供了进程和线程的管理功能。
-
socket:提供了网络编程的功能,包括TCP和UDP套接字编程。
除了以上介绍的标准库,Python还有许多其他功能强大的标准库,可以根据具体需求去查找并使用。
二、os
os
是Python标准库中的一个模块,提供了与操作系统进行交互的各种功能。下面是os
模块常用的几个函数:
1、os.getcwd()
:获取当前工作目录的路径。
import os
path = os.getcwd()
print(path)
2、os.chdir(path)
:改变当前工作目录到指定的路径。
import os
os.chdir('/path/to/directory')
3、os.listdir(path)
:返回指定路径下的所有文件和目录的列表。
import os
files = os.listdir('/path/to/directory')
print(files)
4、os.mkdir(path)
:创建一个新的目录。
import os
os.mkdir('/path/to/new/directory')
5、os.remove(path)
:删除指定的文件。
import os
os.remove('/path/to/file')
6、os.rmdir(path)
:删除指定的目录。注意,只能删除空目录。
import os
os.rmdir('/path/to/directory')
7、os.path.exists(path)
:判断指定的路径是否存在。
import os
if os.path.exists('/path/to/file'):
print('File exists')
else:
print('File does not exist')
这只是os
模块提供的一部分功能,还有很多其他的函数可供使用。你可以查阅Python官方文档或者使用help(os)
来获取更详细的信息。
三、sys
sys是Python标准库中的一个模块,提供了与Python解释器和系统进行交互的功能。下面是sys模块常用的几个函数和属性的用法:
-
sys.argv: sys.argv是一个列表,包含了命令行参数,其中第一个元素是程序自身的名称,后面的元素是用户在命令行中传递的参数。例如,运行脚本python script.py a b c,那么sys.argv的值就是['script.py', 'a', 'b', 'c']。
-
sys.exit([arg]): sys.exit()用于退出当前程序,并可返回一个指定的退出状态码(默认为0)。通常在遇到致命错误或者程序完成后,使用该函数来终止程序的执行。
-
sys.stdin和sys.stdout: sys.stdin是一个类文件对象,用于读取标准输入(通常是键盘输入)的数据。sys.stdout是一个类文件对象,用于向标准输出(通常是屏幕)打印数据。可以使用sys.stdin.readline()来读取用户输入,使用sys.stdout.write()来向屏幕输出。
-
sys.stderr: sys.stderr是一个类文件对象,用于向标准错误输出(通常是屏幕)打印错误信息。可以使用sys.stderr.write()来向屏幕输出错误信息。
-
sys.path: sys.path是一个包含了Python解释器搜索模块的路径的列表。可以通过将自定义模块的路径添加到sys.path中,使得解释器能够找到并加载这些模块。
这只是sys模块的几个常用函数和属性的用法,还有其他功能如sys.platform、sys.version等。可以通过查阅Python官方文档了解更多详细的用法和功能。
四、re(正则表达式)
re模块是Python标准库中的正则表达式模块,用于对字符串进行正则表达式匹配和操作。
下面是re模块常用的几个函数及其用法:
-
re.match(pattern, string, flags=0)
- 从字符串的开头匹配模式。
- 参数pattern是正则表达式模式,string是要匹配的字符串,flags是可选参数,用于控制匹配的行为。
- 如果匹配成功,返回一个匹配对象;如果匹配失败,返回None。
-
re.search(pattern, string, flags=0)
- 在字符串中搜索匹配模式。
- 参数pattern是正则表达式模式,string是要匹配的字符串,flags是可选参数,用于控制匹配的行为。
- 如果匹配成功,返回一个匹配对象;如果匹配失败,返回None。
-
re.findall(pattern, string, flags=0)
- 返回字符串中所有与模式匹配的非重叠子串的列表。
- 参数pattern是正则表达式模式,string是要匹配的字符串,flags是可选参数,用于控制匹配的行为。
- 返回一个列表,列表中的每个元素是与模式匹配的子串。
-
re.sub(pattern, repl, string, count=0, flags=0)
- 替换字符串中的模式匹配项。
- 参数pattern是正则表达式模式,repl是替换的字符串,string是要匹配的字符串,count是替换的最大次数,flags是可选参数,用于控制匹配的行为。
- 返回一个新的字符串,其中的模式匹配项被替换为repl。
除了上述函数,re模块还提供了其他一些功能,如使用正则表达式分割字符串的re.split()函数,查找第一个匹配项的re.find()函数,以及使用正则表达式匹配并返回一个迭代器的re.finditer()函数等。
使用re模块之前,需要导入它:import re
五、datetime
Python标准库datetime提供了处理日期和时间的函数,主要包括以下几个类和函数:
-
datetime.date:用于处理日期,包括年、月、日等信息。
- 创建日期对象:
date(year, month, day)
- 获取当前日期:
date.today()
- 日期格式化输出:
date.strftime(format)
- 日期加减运算:
date + timedelta(days=n)
- 创建日期对象:
-
datetime.time:用于处理时间,包括时、分、秒等信息。
- 创建时间对象:
time(hour, minute, second, microsecond)
- 获取当前时间:
time.now()
- 时间格式化输出:
time.strftime(format)
- 时间加减运算:
time + timedelta(seconds=n)
- 创建时间对象:
-
datetime.datetime:用于处理日期和时间,包括年、月、日、时、分、秒等信息。
- 创建日期时间对象:
datetime(year, month, day, hour, minute, second, microsecond)
- 获取当前日期时间:
datetime.now()
- 日期时间格式化输出:
datetime.strftime(format)
- 日期时间加减运算:
datetime + timedelta(days=n)
- 创建日期时间对象:
-
datetime.timedelta:用于表示时间间隔,包括天、小时、分钟、秒等。
- 创建时间间隔对象:
timedelta(days=n, hours=n, minutes=n, seconds=n)
- 时间间隔加减运算:
timedelta1 + timedelta2
- 时间间隔和日期时间的运算:
datetime + timedelta
- 创建时间间隔对象:
-
datetime.timezone:用于处理时区信息,提供了一些常见时区的定义和转换函数。
通过使用这些类和函数,可以方便地进行日期和时间的处理、格式化输出、加减运算等操作。
六、json
Python标准库中的json模块提供了一种简单的方式来处理JSON数据。下面是json模块的一些常用方法和用法:
1、json.dumps():将Python对象转换为JSON字符串。
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_data = json.dumps(data)
print(json_data) # 输出: {"name": "John", "age": 30, "city": "New York"}
2、json.loads():将JSON字符串转换为Python对象。
import json
json_data = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_data)
print(data) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
3、json.dump():将Python对象转换为JSON字符串,并将其写入文件。
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as f:
json.dump(data, f)
4、json.load():从文件中读取JSON字符串,并将其转换为Python对象。
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
5、json.dumps()的参数:
- indent参数:指定缩进的空格数,用于美化输出。
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_data = json.dumps(data, indent=4)
print(json_data)
输出:
{
"name": "John",
"age": 30,
"city": "New York"
}
- sort_keys参数:指定是否按键进行排序。
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_data = json.dumps(data, sort_keys=True)
print(json_data)
输出:
{"age": 30, "city": "New York", "name": "John"}
这些是json模块的一些常见用法,它们可以用于处理JSON数据的编码和解码。
七、random
Python标准库random包含了生成随机数的函数。下面是一些常用的函数和用法。
1、random.random():返回一个0到1之间的随机浮点数。
import random
print(random.random())
2、random.randint(a, b):返回一个[a, b]之间的随机整数。
import random
print(random.randint(1, 10))
3、random.uniform(a, b):返回一个[a, b]之间的随机浮点数。
import random
print(random.uniform(1, 10))
4、random.choice(sequence):从序列中随机选择一个元素。
import random
sequence = [1, 2, 3, 4, 5]
print(random.choice(sequence))
5、random.shuffle(sequence):将序列中的元素随机排序,直接修改原序列。
import random
sequence = [1, 2, 3, 4, 5]
random.shuffle(sequence)
print(sequence)
6、random.sample(sequence, k):从序列中随机选择k个元素,返回一个新的列表。
import random
sequence = [1, 2, 3, 4, 5]
sample = random.sample(sequence, 3)
print(sample)
7、random.seed(a=None):设置随机数生成的种子,如果指定了a的值,则每次生成的随机数序列相同。
import random
random.seed(1)
print(random.random())
注意:以上函数都需要先导入random模块才能使用。
八、math
Python的标准库math
提供了许多数学函数的实现,以下是一些常用的函数和用法:
math.ceil(x)
:返回大于或等于x的最小整数。math.floor(x)
:返回小于或等于x的最大整数。math.sqrt(x)
:返回x的平方根。math.pow(x, y)
:返回x的y次方。math.exp(x)
:返回e的x次方。math.log(x, base)
:返回x的对数。如果指定了base,则返回以base为底数的对数。math.sin(x)
:返回x的正弦值。math.cos(x)
:返回x的余弦值。math.tan(x)
:返回x的正切值。math.radians(x)
:将角度x转换为弧度。math.degrees(x)
:将弧度x转换为角度。
除了上述函数外,math
还提供了许多其他的函数,如三角函数、双曲函数、指数函数等。此外,math
还定义了一些常量,如π(math.pi
)和自然对数的基数e(math.e
)。
要使用math
库中的函数,首先需要在Python程序中导入它,可以使用以下代码:
import math
然后就可以使用math
库中的函数,例如:
import math
x = math.ceil(4.3)
print(x) # 输出:5
y = math.sqrt(16)
print(y) # 输出:4.0
以上是math
库的一些常用函数和用法,更多详细的内容可以参考Python官方文档中math
库的说明。
九、urllib
Python标准库中的urllib模块提供了一些用于处理URL的函数和类。下面是urllib模块中一些常用的函数和类的具体用法:
-
urllib.parse模块:
-
使用urllib.parse.urlencode()函数将字典转换为URL编码的字符串:
from urllib.parse import urlencode params = {'param1': 'value1', 'param2': 'value2'} encoded_params = urlencode(params) print(encoded_params) # 输出:param1=value1¶m2=value2
-
使用urllib.parse.parse_qs()函数将URL编码的字符串解析为字典:
from urllib.parse import parse_qs encoded_params = 'param1=value1¶m2=value2' params = parse_qs(encoded_params) print(params) # 输出:{'param1': ['value1'], 'param2': ['value2']}
-
使用urllib.parse.urljoin()函数将基础URL和相对URL拼接成完整的URL:
from urllib.parse import urljoin base_url = 'https://example.com' relative_url = '/path/to/resource' full_url = urljoin(base_url, relative_url) print(full_url) # 输出:https://example.com/path/to/resource
-
-
urllib.request模块:
-
使用urllib.request.urlopen()函数发送HTTP请求并获取响应:
from urllib.request import urlopen url = 'https://example.com' response = urlopen(url) content = response.read() print(content.decode()) # 输出返回的内容
-
使用urllib.request.urlretrieve()函数下载文件:
from urllib.request import urlretrieve url = 'https://example.com/image.jpg' filepath, headers = urlretrieve(url, 'image.jpg') print(filepath) # 输出保存的文件路径
-
使用urllib.request.Request和urllib.request.urlopen()函数发送带请求头的HTTP请求:
from urllib.request import Request, urlopen url = 'https://example.com' headers = {'User-Agent': 'Mozilla/5.0'} req = Request(url, headers=headers) response = urlopen(req) content = response.read() print(content.decode()) # 输出返回的内容
-
这只是urllib模块中一些常用函数和类的简单示例,还有其他更多的功能可以通过查阅官方文档来了解。
十、collections
Python标准库中的collections模块提供了一些有用的数据结构,可以用于更高效、更灵活地处理数据。下面是collections模块中一些常用的数据结构及其用法:
1、Counter:用于计数,可以统计可迭代对象中元素的个数,返回一个字典。
from collections import Counter
c = Counter("hello")
print(c) # 输出: Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
2、defaultdict:默认字典,可以在访问未知键时返回默认值。
from collections import defaultdict
d = defaultdict(int)
print(d["key"]) # 输出: 0
3、OrderedDict:有序字典,可以按照元素的插入顺序进行迭代。
from collections import OrderedDict
d = OrderedDict()
d["a"] = 1
d["b"] = 2
d["c"] = 3
for key, value in d.items():
print(key, value) # 输出: a 1 b 2 c 3
4、namedtuple:命名元组,可以用来创建一个带有字段名的元组。
from collections import namedtuple
Person = namedtuple("Person", ["name", "age"])
p = Person("John", 25)
print(p.name) # 输出: John
print(p.age) # 输出: 25
5、deque:双端队列,可以在两端高效地执行插入和删除操作。
from collections import deque
dq = deque([1, 2, 3])
dq.append(4) # 在右端插入元素
dq.appendleft(0) # 在左端插入元素
print(dq) # 输出: deque([0, 1, 2, 3, 4])
这些只是collections模块中一部分数据结构的用法,还有其他的用法等待你去探索。详细的用法可以参考官方文档。
十一、itertools
Python标准库itertools模块提供了一组用于操作迭代器的函数。 这些函数可以被用来快速且高效的处理迭代对象,生成各种有用的迭代器。
下面是itertools模块中一些常用函数的具体用法:
-
count(start=0, step=1):无限迭代器,生成从start开始,以step为步长的整数序列。
-
cycle(iterable):无限迭代器,将可迭代对象的元素无限重复。
-
repeat(object, times=None):无限迭代器,重复生成指定的对象,如果给定times参数,则只重复指定次数。
-
chain(*iterables):将多个可迭代对象串联起来,返回一个新的迭代器。
-
islice(iterable, start, stop[, step]):返回一个迭代器,生成从start到stop(不包含stop)的元素,可指定步长。
-
imap(function, *iterables):返回一个迭代器,将指定函数应用于每个可迭代对象的元素。
-
starmap(function, iterable):返回一个迭代器,将指定函数应用于可迭代对象的元素,可用于参数解包。
-
tee(iterable, n=2):返回n个独立的迭代器,可同时遍历原始迭代器。
-
zip_longest(*iterables, fillvalue=None):将多个可迭代对象的元素按索引组合在一起,以最长的可迭代对象的长度为准,可指定fillvalue来填充缺失值。
-
groupby(iterable, key=None):返回一个迭代器,将相邻且具有相同键值的元素分组。
这些只是itertools模块中的一部分常用函数。通过使用这些函数,可以更加灵活和高效地处理迭代对象。具体的使用方法和参数说明可以通过查阅Python官方文档来获取更详细的信息。
##欢迎关注交流,开发逆商潜力,提升个人反弹力: