分享几个好用到爆的 Python 内置模块
Python
内置库,相信大家看过之后会对今后的Python
编程帮助多多argparse
Python
当中的argparse
模块主要用于命令行的参数解析,可以帮助用户轻松地编写命令行接口,我们先来看一个例子import argparse
# 解析参数
parser = argparse.ArgumentParser()
parser.add_argument("name")
args = parser.parse_args()
# 打印结果
print(f'Hello {args.name}!')
python python_package.py 俊欣
Hello 俊欣!
usage: python_package.py [-h] name
python_package.py: error: the following arguments are required: name
python python_package.py -h
usage: python_package.py [-h] name
positional arguments:
name
optional arguments:
-h, --help show this help message and exit
name
的参数到底指的是什么,因为我们可以更改一下我们写的程序import argparse
# 解析参数
parser = argparse.ArgumentParser()
parser.add_argument("name", help="Enter your name")
args = parser.parse_args()
print(f'Hello {args.name}!')
python python_package.py -h
usage: python_package.py [-h] name
positional arguments:
name Enter your name
optional arguments:
-h, --help show this help message and exit
import argparse
# 解析参数
parser = argparse.ArgumentParser()
parser.add_argument("name", help="Enter your name")
parser.add_argument("age", help='Enter your age', type=int)
args = parser.parse_args()
born_year = 2022 - args.age
print(f'Hello {args.name}! You were borned in {born_year}.')
python python_package.py 俊欣 24
Hello 俊欣! You were borned in 1998.
shutil
shutil
模块提供了大量的文件高级操作。特别是针对文件的拷贝、删除、移动、压缩和解压缩等操作,我们先来看一个例子import shutil
print(shutil.which("python"))
路径......
Python
可执行程序的路径,文件移动的代码是shutil.move(src, dst)
shutil.move("源路径", "目标路径")
shutil.copyfile(src, dst): 复制文件 shutil.copytree(olddir, newdir, True/False):复制整个文件夹目录 shutil.rmtree(src): 递归删除一整个目录以及目录文件夹下的所有内容
glob
glob
模块主要是用来查找符合特定规则的目录和文件,并将查找出来的结果返回到一个列表当中来。它还可以和正则通配符一起来使用,例如def choose_numbered_files(root="."):
return glob.glob(f"{root}/[0-9].*")
choose_numbered_files("images")
images
路径下的带有数字的文件,结果如下['images\\1.gif',
'images\\1.png',
'images\\2.gif',
'images\\2.png',
'images\\3.png',]
glob.glob()
返回的是符合匹配条件的所有文件的路径,而glob.iglob()
返回的是一个迭代对象,需要循环遍历获取每个元素之后得到符合匹配条件的所有文件的路径。pprint
pprint
模块提供了“美化打印”任意Python
数据结构的功能,方便使用者阅读,要是用普通的print
来打印的话,如下nested = [list("abcs"), list("sdff"), [1, 45, 4, 6, 7, 8], list(range(12))]
print(nested)
[['a', 'b', 'c', 's'], ['s', 'd', 'f', 'f'], [1, 45, 4, 6, 7, 8], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]]
pprint
模块来打印的话,如下from pprint import pprint
pprint(nested)
[['a', 'b', 'c', 's'],
['s', 'd', 'f', 'f'],
[1, 45, 4, 6, 7, 8],
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]]
import json
import pprint
from urllib.request import urlopen
with urlopen('https://pypi.org/pypi/sampleproject/json') as resp:
project_info = json.load(resp)['info']
pprint.pprint(project_info)
{'author': 'A. Random Developer',
'author_email': 'author@example.com',
'bugtrack_url': None,
'classifiers': [.......],
'description': [.......],
'description_content_type': 'text/markdown',
'docs_url': None,
'download_url': '',
'downloads': {.........},
'home_page': 'https://github.com/pypa/sampleproject',
'keywords': 'sample setuptools development',
'license': '',
'maintainer': '',
'maintainer_email': '',
'name': 'sampleproject',
'package_url': 'https://pypi.org/project/sampleproject/',
'platform': '',
'project_url': 'https://pypi.org/project/sampleproject/',
'project_urls': ..........,
'requires_dist': [..........],
'requires_python': '>=3.5, <4',
'summary': 'A sample Python project',
'version': '2.0.0',
'yanked': False,
'yanked_reason': None}
statistics
Python
当中的statistics
模块提供了更加完善的数据统计操作,例如对中位数的计算就提供了median_low()
、median_high()
两种方法,分别来计算数据的低中位数(偶数个样本时取中间两个数的较小者),代码如下statistics.median_low([1,3,5,7])
3
statistics.median_high([1,3,5,7])
5
x1 = statistics.mode([1,1,2,3,4,3,3,3,3])
print(x1)
x2 = statistics.mode(["a","b","c","d","d","a","a",])
print(x2)
3
a
calendar
Python
当中的日历模块提供了对日期的一系列操作方法,并且可以生成日历,代码如下import calendar
print(calendar.calendar(2022))
2022
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 28 29 30 31
31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
30 31
......
import calendar
print(calendar.month(2022, 3))
March 2022
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
calendar.isleap(year)
是闰年则返回True
,否则返回False
,例如import calendar
print(calendar.isleap(2022))
False
分享
点收藏
点点赞
点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 坚持依法治国、依宪执政 7990606
- 2 韩国的6小时40分 7973655
- 3 琼瑶死因曝光:一氧化碳中毒 7830059
- 4 全国铁路客运首次突破40亿人次 7765745
- 5 女生让全盲室友带饭 网友:够余华的 7657669
- 6 李冰冰51岁状态 7561176
- 7 韩国首尔爆发示威游行 7474214
- 8 刚果(金)出现不明疾病 致近百人死亡 7339363
- 9 一只爱马仕包 等于一辆新能源车 7243289
- 10 边牧是不是都会给自己立狗设 7126788