python标准库
先说一下什么是python标准库?
- python标准库是随着python安装时自带的库,常用的一些模块。
操作系统接口
- os模块提供的
```python
import os
os.getcwd() #返回当前工作的目录
E:\OldboyClass\code\study_code\day41database
os.system("cmd") #执行的是命令行
会执行括号中的命令,如果命令成功执行,这条语句返回0,否则返回1
```
- 建议使用 "import os" 风格而非 "from os import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。
- 在使用os这种大型模块时,可以使用python内置函数查看模块的具体信息。dir()和help()函数。
```python
import os
dir(os)
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
help(os)
用于查看函数或模块用途的详细说明。
```
文件通配符
glob模块提供了一个函数,用于从目录通配符搜索生成文件列表
```python
import glob
glob.glob("*.txt") #传入文件路径,匹配出文件夹下所有.txt文件
```
命令行参数
- 通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:
```python
在demo.py文件中输入以下代码
import sys
print(sys.argv)
命令行中输入python demo.py one two three
结果
['demo.py', 'one', 'two', 'three']
```
字符串正则匹配
- `re`模块
```python
import re
re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
```
数学
- math模块
```python
import math
math.cos(math.pi / 4)
0.70710678118654757
math.log(1024, 2)
10.0
```
```python
python中math模块常用的方法整理
ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x
copysign:把y的正负号加到x前面,可以使用0
cos:求x的余弦,x必须是弧度
degrees:把x从弧度转换成角度
e:表示一个常量
exp:返回math.e,也就是2.71828的x次方
expm1:返回math.e的x(其值为2.71828)次方的值减1
fabs:返回x的绝对值
factorial:取x的阶乘的值
floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身
fmod:得到x/y的余数,其值是一个浮点数
frexp:返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
fsum:对迭代器里的每个元素进行求和操作
gcd:返回x和y的最大公约数
hypot:如果x是不是无穷大的数字,则返回True,否则返回False
isfinite:如果x是正无穷大或负无穷大,则返回True,否则返回False
isinf:如果x是正无穷大或负无穷大,则返回True,否则返回False
isnan:如果x不是数字True,否则返回False
ldexp:返回x*(2i)的值
log:返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
log10:返回x的以10为底的对数
log1p:返回x+1的自然对数(基数为e)的值
log2:返回x的基2对数
modf:返回由x的小数部分和整数部分组成的元组
pi:数字常量,圆周率
pow:返回x的y次方,即xy
radians:把角度x转换成弧度
sin:求x(x为弧度)的正弦值
sqrt:求x的平方根
tan:返回x(x为弧度)的正切值
trunc:返回x的整数部分
- random模块
python
import random
random.choice(['apple', 'pear', 'banana']) # 随机选择一个
'apple'
random.sample(range(100), 10) # 0-99随机十个数
[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
```
时间和日期
- time模块
- datetime模块
```python
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
```