python模块之random、os、sys、json、subprocess

一、random模块

与随机数相关的模块。

image

小练习

# 搜狗公司笔试题
# 编写一个能够随机生成5位数的验证码,由数字、小写字母和大写字母随机组成
# 思路:循环五次,随机生成0-9的数字,a-z的小写字母,A-Z的大写字母,需要用到模块random
import random
# 提前定义一个验证码容器:字符串
code = ''
for i in range(5):
	# 随机生成数字,然后转成字符串类型
	num = str(random.randint(0, 9))
	# 随机生成小写字母,这里需要用到AscII码表转换,用数字随机生成后再转成字母
	lower = chr(random.randint(65, 90))
	# 随机生成大写字母,这里需要用到AscII码表转换,用数字随机生成后再转成字母
	upper = chr(random.randint(97, 122))
	# 随机选一个
	res = random.choice([num, lower, upper])
	# 拼接成字符串
	code += res
print(code)

# 提前定义一个验证码容器:列表
import random
code1 = []
for i in range(5):
	num1 = str(random.randint(0, 9))
	lower1 = chr(random.randint(65, 90))
	upper1 = chr(random.randint(97, 122))
	res = random.choice([num1, lower1, upper1])
	code1.append(res)
print(''.join(code1))

image

二、os模块

与操作系统相关的模块。

image

三、sys模块

与python解释器交互的模块。
image

四、json模块

序列化模块,使用频率最高,用于与其他编程语言交互。
序列化:可以理解成把列表、字典等类型数据转换成字符串。
注意:并非所有的数据类型都支持序列化,可以用json.JSONencoder按住ctrl键点进去查看哪些数据类型支持序列化。

image

image

import json
d = {'username': 'jason', 'pwd': 123}
with open(r'C:\Users\gsl13\Desktop\员工管理3.0\db\userinfo.txt', 'w', encoding='utf8') as f:
	res = json.dumps(d)
	f.write(res)
with open(r'C:\Users\gsl13\Desktop\员工管理3.0\db\userinfo.txt', 'r', encoding='utf8') as f:
	res1 = f.read()
	print(json.loads(res1))


with open(r'C:\Users\gsl13\Desktop\员工管理3.0\db\userinfo.txt', 'w', encoding='utf8') as f:
	res = json.dump(d, f)
with open(r'C:\Users\gsl13\Desktop\员工管理3.0\db\userinfo.txt', 'r', encoding='utf8') as f:
	print(json.load(f))

image

五、subprocess模块

类似于远程操作工具。可以基于网络用socket模块连接一台计算机,让连接上的计算机执行命令,并返回结果。Windows电脑内部编码默认为GBK。

import subprocess
res = subprocess.Popen('tasklist',
					   shell=True,
					   stdout=subprocess.PIPE,
					   stderr=subprocess.PIPE
					   )
print('stdout', res.stdout.read().decode('gbk'))  # 获取正确命令执行之后的结果
print('stderr', res.stderr.read().decode('gbk'))  # 获取错误命令执行之后的结果

image

posted @ 2021-11-26 18:40  90啊  阅读(62)  评论(0编辑  收藏  举报