python-模块(三)
random模块
random()
1
2import random
print(random.random()) # 随机产生一个0-1之间的小数randint()
1
2import random
print(random.radint(1, 6)) # 随机产生一个1-6之间的整数uniform()
1
2import random
print(random.uniform(1, 6)) # 随机产生一个1-6之间的小数choice()
1
2import random
print(random.choice(['一等奖', '二等奖', '三等奖', '谢谢惠顾'])) # 随机抽取其中一个sample()
1
2import random
print(random.sample(['安徽省', '江苏省', '山东省', '广东省'],2)) # 随机出去指定样本数量shuffle()
1
2
3
4import random
l = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
random.shuffle(l) # 随机打乱容器类型中的元素
print(l)randrange()
1
2import random
print(random.randrange(1, 10, 2)) # 随机产生1到10之间的奇数,2 步长验证码生成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20def get_code(n):
# 提前定义一个存储验证码的变量
code = ''
# 由于需要产生五位 每一位的操作都是一样的 所以肯定需要使用循环
for i in range(n):
# 随机产生一个数字
random_int = str(random.randint(0, 9))
# 随机产生一个大写字母
random_upper = chr(random.randint(65, 90))
# 随机产生一个小写字母
random_lower = chr(random.randint(97, 122))
# 随机选取一个
temp = random.choice([random_int, random_upper, random_lower])
# 拼接到字符串中
code += temp
return code
code1 = get_code(5)
code2 = get_code(10)
code3 = get_code(8)
print(code1,code2,code3)os模块
mkdir()
1
2import os
os.mkdir('test') # 只能创建单级目录makedirs()
1
2
3import os
os.makesdirs('test/tes1') # 创建test目录和下级目录test1(当前斜线表示Linux系统内)
# 和 linux命令 mkdir -p test/test1 结果一样rmdir()
1
2import os
os.rmdir('test') # 只能删除空目录,否则会报错获取当前文件所在路径
1
2
3import os
path = os.path.dirname(__file__)
print(path)路劲拼接
1
2
3
4import os
path = os.path.dirname(__file__)
db_path = os.path.join(path, 'db')
print(db_path) # 返回当前路径加dblistdir()
1
2
3
4
5# 列举出指定路径下的文件名称(任意类型文件) 返回的是一个列表
# 相当于Linux命令的 ls
import os
print(os.listdir())
print(os.listdir('/tmp'))remove()
1
2
3import os
os.remove('a.txt') # 删除当前a.txt
# 删除文件不能是目录 相当于 rm -frename()
1
2
3
4import os
os.rename('a.txt', 'b.txt') # 将a.txt 改名为 b.txt
os.rename('test', 'test1') # 将test目录改为test1目录
# 可以改文件或者目录名字 类似Linux命令的 mvgetcwd()
1
2import os
print(os.getcwd()) # 获取当前工作路径 Linux --> pwdchdir()
1
2import os
os.chdir('/mnt') # 切换工作路径到/mnt目录 Linux --> cdexists()
1
2
3
4
5# 判断目录或者文件是否存在 存在返回Treu 不存在返回False
import os
print(os.path.exists('/tmp')) # 存在目录/tmp返回True 不存在返回False
print(os.path.exists('/tmp/test.txt')) # 存在文件test.txt 返回True 不存在返回False
print(os.path.exists('/tmp/test')) # 存在目录/tmp/test返回True 不存在返回Falseisfile()
1
2
3
4# 判断是否是文件,是文件返回True,是目录返回False
import os
print(os.path.isfile('/tmp/test.txt')) # True
print(os.path.isfile('/tmp/')) # Falesisdir()
1
2
3# 判断是否是目录,是目录返回True,是文件返回False
print(os.path.exists('/tmp/test.txt')) # False
print(os.path.isfile('/tmp/')) # Truegetsize()
1
2# 获取文件大小(字节数)
print(os.path.getsize(r'a.txt'))获取目录文件内的文件并按选择读取
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15basic_path = os.path.dirname(__file__) # 获取当前文件的路径
log_path = os.path.join(basic_path, 'test1') # 拼接路径,得到 当前路径/test1
file_list = os.listdir(log_path) # 得到 test1路径下的文件列表
while True:
for i, j in enumerate(file_list,1): # 1 file_list[0], 2 file_list[1], 3 file_list[2]
print(i,j)
choice = input('请输入想查看的日志: ').strip()
if choice.isdigit():
choice = int(choice)
if choice in range(len(file_list) + 1): # range顾头不顾尾所以 加一
file_name = file_list[choice - 1] # choice是从1开始的,所以取列表索引时需要 减一
file_path = os.path.join(log_path,file_name) # 拼接选择的文件绝对路径
with open(file_path, 'r', encoding='utf8') as f:
print(f.read()) # 打印文件内容sys模块
1 | import sys |
序列化模块
json格式化数据: 跨语言传输
1 | import json |
subprocess模块
1 | res = subprocess.Popen('ps -ef', # 在终端运行的命令 |