8.1 模块基本内容
8.1.1 使用 python 标准库中模块
#!usr/bin/python3
import sys
for arg in sys.argv:
print("arg = ", arg)
print("sys.path = ", sys.path)
结果:
自行打印
8.1.2 __name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行
#!/usr/bin/python3
if __name__ == '__main__':
print("hahah")
else:
print("heheheh")
结果:
hahah
8.2 常用模块
8.2.1 sys
sys模块代表了Python解释器,主要用于获取Python解释器相关的信息,常用的属性有:
sys.argv: 获取运行python程序的命令行参数,其中sys.argv[0]指该python程序,之后sys.argv[1]表示第一个参数,以此类推。用法之前已经演示过。
#!usr/bin/python3
import sys
for arg in sys.argv:
print("arg = ", arg)
sys.path: 该属性指定Python查找模块的路径列表,程序可以通过修改该属性来动态增加Python加载模块的路径
#!usr/bin/python3
import sys
sys.path.append("/Users/haha/hehe") #动态增加模块加载路径
8.2.2 os模块
os模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息,常用的属性有:
os.name 返回操作系统名称
#!usr/bin/python3
import os
print("os.name = ", os.name)
结果:
os.name = posix
os.environ 返回在当前系统上所有环境变量组成的字典
#!usr/bin/python3
import os
print("os.environ = ", os.environ)
os.pathsep 返回当前系统上多条路径之间的分隔符,一般在windows系统上多条路径之间的分隔符是英文分号(;),在UNIX及类UNIX上是英文冒号(:)
#!usr/bin/python3
import os
print("os.pathsep = ", os.pathsep)
结果:
os.pathsep = :
os.system 执行命令
如下所示,执行ping www.baidu.com的命令
#!usr/bin/python3
import os
os.system("ping www.baidu.com")
结果:
PING www.a.shifen.com (220.181.38.150): 56 data bytes
64 bytes from 220.181.38.150: icmp_seq=0 ttl=49 time=7.756 ms
64 bytes from 220.181.38.150: icmp_seq=1 ttl=49 time=10.630 ms
64 bytes from 220.181.38.150: icmp_seq=2 ttl=49 time=10.582 ms
64 bytes from 220.181.38.150: icmp_seq=3 ttl=49 time=10.132 ms
64 bytes from 220.181.38.150: icmp_seq=4 ttl=49 time=8.429 ms
64 bytes from 220.181.38.150: icmp_seq=5 ttl=49 time=12.643 ms
64 bytes from 220.181.38.150: icmp_seq=6 ttl=49 time=15.693 ms
64 bytes from 220.181.38.150: icmp_seq=7 ttl=49 time=8.320 ms
64 bytes from 220.181.38.150: icmp_seq=8 ttl=49 time=8.428 ms
64 bytes from 220.181.38.150: icmp_seq=9 ttl=49 time=15.310 ms
64 bytes from 220.181.38.150: icmp_seq=10 ttl=49 time=96.784 ms
64 bytes from 220.181.38.150: icmp_seq=11 ttl=49 time=6.702 ms
64 bytes from 220.181.38.150: icmp_seq=12 ttl=49 time=96.813 ms
64 bytes from 220.181.38.150: icmp_seq=13 ttl=49 time=76.806 ms
64 bytes from 220.181.38.150: icmp_seq=14 ttl=49 time=28.985 ms
64 bytes from 220.181.38.150: icmp_seq=15 ttl=49 time=10.407 ms
64 bytes from 220.181.38.150: icmp_seq=16 ttl=49 time=34.335 ms
64 bytes from 220.181.38.150: icmp_seq=17 ttl=49 time=12.980 ms
64 bytes from 220.181.38.150: icmp_seq=18 ttl=49 time=41.289 ms
64 bytes from 220.181.38.150: icmp_seq=19 ttl=49 time=12.975 ms
64 bytes from 220.181.38.150: icmp_seq=20 ttl=49 time=13.498 ms
64 bytes from 220.181.38.150: icmp_seq=21 ttl=49 time=23.235 ms
64 bytes from 220.181.38.150: icmp_seq=22 ttl=49 time=20.532 ms
。。。
8.2.3 random模块
random模块包含了一些生成伪随机数的功能,其他各种语言里也都有类似的功能,这里只列举2个最常用的
random.randint(a, b). 生成一个范围为a<=N<=b的随机数
random.random() 生成一个从0.0<=N<1.0之间的伪随机浮点数
#!usr/bin/python3
import random
print("random.randint(4, 10) = ", random.randint(4, 10))
print("random.random() = ", random.random())
结果:
random.randint(4, 10) = 6
random.random() = 0.11464138896982845
8.2.4 time模块
time模块,顾名思义就是处理和时间有关的
time.asctime() 获取当前时间
#!usr/bin/python3
import time
print(time.asctime())
结果:
Thu May 12 22:45:39 2022
time.strftime() 将时间转换为指定格式
#!usr/bin/python3
import time
print("time = ", time.strftime("%Y-%m-%d %H-%M-%S"))
结果:
time = 2022-05-13 22-12-21
8.2.5 JSON操作
json格式的数据非常重要,在web开发中很多数据传递用的都是json格式,常用的方法有json和字符串之间的转换
json.dumps() 将对象转换成json格式字符串
#!usr/bin/python3
import json
obj = {'math': 80, 'chinese': 90, 'english': 100}
str = json.dumps(obj) # 将对象转换为字符串
print("str = ", str)
结果:
str = {"math": 80, "chinese": 90, "english": 100}
json.loads() 将json字符串恢复成json对象
#!usr/bin/python3
import json
str = '{"math" : 20, "chinese" : 30, "english" : 50}'
obj = json.loads(str)
print("obj = ", obj)
结果:
obj = {'math': 20, 'chinese': 30, 'english': 50}
8.2.6 正则表达式
正则表达式在所有语言中几乎都有,用来匹配字符串或者查找想要的字符串