首页 > 编程语言 >1.python标准库概览

1.python标准库概览

时间:2024-05-06 22:23:07浏览次数:18  
标签:python 概览 datetime current 标准 模块 print import os

python3标准库中的模块
os模块:os模块提供了很多与操作系统交互的函数,例如创建、移动、删除文件和目录,以及访问环境变量等
sys模块:sys模块提供了与python解释器和系统相关的功能,例如解释器的版本和路径,以及stdin、stdout、stderr相关的信息
time模块:time模块提供了处理时间的函数,例如,获取当前时间,格式化日期和时间计时等.
datetime模块:datetime模块提供了更高级的日期和时间处理函数,例如,处理时区、计算时间差、计算日期差等
random模块:random模块提供了生成随机数的函数,例如生成随机整数,浮点数,序列等
math模块:math模块提供了数学函数,例如三角函数、对数函数、指数函数、常数等
re模块:re模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等
json模块:json模块提供了json编码和解码函数,可以将python对象转换为JSON格式,并从JSON格式中解析出Python对象
urllib模块:urllib模块提供了访问网页和处理URL的功能,包括下载文件发送POST请求,处理cookies等
 1 # 日期和时间
 2 # datatime模块为日期和时间处理同时提供了简单和复杂的方法
 3 # 支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出
 4 import datetime
 5 
 6 # 获取当前的日期和时间
 7 current_datetime = datetime.datetime.now()
 8 print(current_datetime)  # 2024-05-02 10:47:04.867729
 9 # 获取当前日期
10 current_date = datetime.date.today()
11 print(current_date)  # 2024-05-02
12 # 格式化日期
13 formatted_datetime = current_datetime.strftime("%Y~%m~%d %H:%M:%S")
14 print(formatted_datetime)  # 2024~05~02 10:52:31
15 
16 # 创建一个表示生日的日期对象
17 birthday = datetime.date(1996, 7, 29)
18 age = current_date - birthday
19 print(age.days)  # 10139
 1 # 数据压缩
 2 # 以下模块直接支持通用的数据打包和压缩格式:zlib, gzip, bz2, zipfile, 以及tarfile
 3 import zlib
 4 
 5 s = b'123456789123456789123456789123456789'
 6 print(len(s))  # 36
 7 t = zlib.compress(s)
 8 print(len(t))  # 20
 9 print(t)  # b'x\x9c3426153\xb7\xb04\xc4\xcd\x00\x00\x89\x16\x07u'
10 print(zlib.decompress(t))  # b'123456789123456789123456789123456789'
11 print(zlib.crc32(s))  # 1042880156
1 # 性能度量
2 # 有些用户对了解解决同一问题的不同方法的性能差异很感兴趣.python提供了一个度量工具,为这些问题提供了直接的答案
3 # 例如:使用元组封装和拆封来交换元素看起来要比使用传统的方法要诱人的多,timeit证明了现代的方法更快些
4 from timeit import Timer
5 
6 print(Timer('t = a; a = b; b = t', 'a=1; b=2').timeit())  # 0.008543707997887395
7 print(Timer('a, b = b, a', 'a=1; b=2').timeit())  # 0.006364583001413848
# 相对于timeit的细粒度,:mod:profile和pstats模块提供了针对更大代码块的时间度量工具
# 操作系统接口
# os模块提供了不少与操作系统相关联的函数,例如文件和目录的操作
import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前的工作目录为:", current_dir)  # 当前的工作目录为: /Users/wangbiaodiao/Desktop/practice
# 列出目录下的文件
files = os.listdir(current_dir)
print("目录下的文件:", files)  
# 建议使用 import os 风格而非from os import *,这样可以保证随操作系统不同而有所变化的os.open()不会覆盖内置函数open()
# 在使用os这样的大模型时内置的dir()和help()函数非常有用
print(dir(os))  
print(help(os))
# 针对日常的文件和目录管理任务,:mod:shutil模块提供了一个易于使用的高级接口:
import shutil

shutil.copyfile("./file/foo.txt", "./public/foo.txt")
# shutil.move("./public/support.py",'./public1')
shutil.copyfile("./public1/support.py", "./public/support.py")

# 文件通配符
# glob模块提供了一个函数用于从目录通配符搜索中生成文件列表
import glob

print(glob.glob("day1*"))
print(glob.glob('./file/*.txt'))
# 命令行参数
# 通用工具脚本经常调用命令行参数,这些命令行参数以链表的形式存储于sys模块的argv变量
import sys

print(sys.argv)

# 错误输出重定向和程序终止
# sys还有stdin、sydout、stdeer属性,即使在stdout被重定向时,后者也可以用于显示警告和错误信息
# print(sys.stderr.write('Warning, log file not found starting a new one \n'))
# 大多脚本的定向终止都使用sys.exit()
# 字符串正则匹配
# 模块为高级字符串处理提供了正则表达式工具,对于复杂的匹配和处理,正则表达式提供了简洁优化的解决方案
import re

print(re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest'))  # ['foot', 'fell', 'fastest']
print(re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat'))  # cat in the hat
# 如果只是需要简单的功能,应首先考虑字符串方法
print('tea for too'.replace('too', 'two'))  # tea for two
print('cat in the the hat'.replace('the', '', 1))
1 # 数学
2 # math模块为浮点运算提供了对底层C函数库的访问
3 import math
4 
5 print(math.cos(math.pi / 4))  # 0.7071067811865476
6 print(math.log(1024, 2))  # 10.0
1 # random提供了生成随机数的工具
2 import random
3 
4 print(random.choice(['apple', 'pear', 'banana']))  # banana
5 print(random.sample(range(100), 10))  # [11, 78, 67, 10, 35, 81, 61, 28, 57, 95]
6 print(random.random())  # 0.4318636934920489
7 print(random.randrange(6))  # 5


# 访问互联网
# 有几个模块用于访问互联网以及处理网络通信协议,其中最简单的两个是用于处理从urls接受的数据的urllib.request以及用于发送电子邮件的smtplib
# from urllib.request import urlopen
# for line in urlopen('http://boxnovel.baidu.com'):
# line = line.decode('utf-8')
# print(line)

标签:python,概览,datetime,current,标准,模块,print,import,os
From: https://www.cnblogs.com/shuheng/p/18176053

相关文章

  • Python基础知识——缩进、标识符、保留字
    标识符标识符就是程序中,使用的各种名称,例如:变量名、常量名、类名等等。在Python中,对标识符格式的要求与C/C++、Java等差不多:第一个字符必须是字母表中的字母或下划线_;标识符的其他的部分,由字母、数字和下划线组成;标识符对大小写敏感;标识符不能与保留字相同。比如:nu......
  • 代理 mitmproxy Python非命令行启动 使用笔记(一)
    代理mitmproxyPython非命令行启动使用笔记(一)mitmproxyPython非命令行启动在进行APP应用操作时,难免会遇到抓包操作,于是我们这里使用mitmproxy来完成这能力目录mitmproxy简介mitmproxy常用的命令行启动mitmproxy非命令行脚本直接启动,两种方式简介mitmproxy是......
  • GUI利器 python界面开发PySimpleGUI
    大家好,很多人都想写一个自己的桌面程序,那么PySimpleGUI 是一个非常好的选择,它旨在简化GUI(图形用户界面)的创建过程。它基于几种流行的PythonGUI库,如tkinter、Qt、WxPython和Rem)i,但提供了一个更简单直观的接口。通过PySimpleGUI,即使是没有图形界面开发经验的开发者也可以......
  • 一个惊艳的 python 库:PyWebIO,用 Python 写网站
    大家好,今天给大家介绍另一个简单而强大的web库--PyWebIO,它能让你的Python脚本快速拥有一个交互式的网页界面。想象一下,你不需要懂得前端开发,就能创建出用户友好的网页应用,今天,我们就来聊聊PyWebIO,看看它如何让Pythonweb开发变得更加简单有趣。为什么选择PyWebIO?1. 快速开发......
  • python实战练习题二
    """第一题:求解回文字符串回文是一个正读和反读都一样的字符串。例如:abcba12321是回文字符串hello123456不是回文字符串"""s=input("请输入字符串:")s2=s[::-1]#字符串逆序ifs==s2:print("{}是回文字符串!".format(s))else:pr......
  • python常见的实战练习题一
    """第一题:求解水仙花数水仙花数,也被称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),是一个n位数(n≥3),其每个位上的数字的n次幂之和等于它本身。例如,三位数153是一个水仙花数,因为1^3+5^3+3^3=153。在三位数中,除了153,还有370、371和407也是水仙花......
  • Python高阶---反射
    ======================================反射:hasattr:输入一个字符串,判断对象有没有这个方法或属性getattr:获取对象属性或方法的引用。如果是方法,则返回方法的引用;如果是属性,则直接返回属性值;如果该方法或属性不存在,则抛出异常。setattr:动态添加一个方法或属性delatt......
  • 如何用Python开发一个命令行工具
    如何编写一个python命令行工具importargparsedefparse_args():parser=argparse.ArgumentParser()parser.add_argument("-nc","--test_a",type=int,default=10,help="testA")parser.add_argument(&quo......
  • Python高阶---魔法方法
    魔法方法:通过dir(函数名)查看到的方法中以双下划线开始,以双下划线结束的方法。=========================================classStudent:definit(self,name,age):"""负责初始化类的实例,实例是由__new__方法传递过来的,也就是这里的self:paramname::paramage:"""self......
  • Python文本统计与分析从基础到进阶
    本文分享自华为云社区《Python文本统计与分析从基础到进阶》,作者:柠檬味拥抱。在当今数字化时代,文本数据无处不在,它们包含了丰富的信息,从社交媒体上的帖子到新闻文章再到学术论文。对于处理这些文本数据,进行统计分析是一种常见的需求,而Python作为一种功能强大且易于学习的编程语言......