python内置模块续写,random、os、sys、json、subprocess模块应有尽有,超级详细~
import random
# 随机生成一个0-1之间的随机数
num = random.random()
print(num)
# >>>0.9158120687169333
import random
# 随机生成一个范围内的随机数
num = random.randint(0,10)
print(num)
# >>>3
import random
# 随机生成一个范围内的小数
num = random.uniform(0,5)
print(num)
# >>>2.3192301761260783
import random
# 随机抽取一个元素:抽奖示例
num = random.choice(['特等奖','一等奖','二等奖','三等奖','参与奖','谢谢惠顾'])
print(num)
# >>>特等奖
import random
# 随机抽取定量样本,一次性抽取两个
num = random.sample(['河北省','河南省','山东省','山西省','北京市','上海市'],2)
print(num)
# >>>['山西省', '北京市']
import random
# 打乱容器内的元素,洗牌示例
lst_card = [2,3,4,5,6,7,8,9,10,'A','J','Q','k',]
random.shuffle(lst_card) # 打乱顺序,洗牌
print(lst_card)
# >>>[3, 'Q', 9, 4, 7, 2, 'A', 6, 'J', 10, 5, 8, 'k']
'''
搜狗公司笔试题
随机验证码可以是由 数字 小写字母 大小写字母 任意组合
编写能够产生五位数的随机验证码
ps:五位 每位都可以是三种情况之一
'''
# 验证码的随机性,使用random
import random
for i in range(5):
code_num = random.randint(0, 9) # 获取0-9内的随机数
code_lower = chr(random.randint(97, 122)) # 获取a-z的字符,数字转换为ASCII
code_upper = chr(random.randint(65, 90)) # 获取A-Z的字符,数字转换为ASCII
# 随机抓取任意一个
get_code = random.choice([code_num,code_lower,code_upper])
print(get_code,end='')
import random
# 定义一个可以获取任意长度的验证码函数
def get_anylen_code(n):
code = ''
for i in range(n):
code_num = str(random.randint(0, 9)) # 获取0-9内的随机数
code_lower = chr(random.randint(97, 122)) # 获取a-z的字符,数字转换为ASCII
code_upper = chr(random.randint(65, 90)) # 获取A-Z的字符,数字转换为ASCII
# 随机抓取任意一个
get_code = random.choice([code_num,code_lower,code_upper])
# print(get_code,end='')
code+=get_code
return code
# 获取10位验证码
print(get_anylen_code(10)) # >>>0AP9xSUmFY
# 获取6位验证码
print(get_anylen_code(6)) # >>>2q6de0
# 获取4位验证码
print(get_anylen_code(4)) # >>>k3Y1
import os
# 创建单层目录
os.mkdir(r'HammerZe')
# 创建多层目录报错
os.mkdir(r'HammerZe\Ze')
import os
# 创建多层目录
os.makedirs(r'HammerZe\Ze')
import os
# 删除单层目录
os.rmdir(r'E:\Old_BoyClass_fourth\Ze')
'''Ze文件是我提前创建好的'''
import os
# 删除单层目录
os.removedirs(r'E:\Old_BoyClass_fourth\HammerZe')
import os
# 获取当前文件所在路径
print(os.path.dirname(__file__))
# >>>E:/Old_BoyClass_fourth
# 嵌套使用,获取上一层路径
print(os.path.dirname(os.path.dirname(__file__)))
# >>>E:/
import os
# 路径拼接
# 获取当前文件路径
now_dir = os.path.dirname(__file__)
print(now_dir) #E:/Old_BoyClass_fourth/join
# 路径拼接,找到test.py文件
join_dir = os.path.join(now_dir,'test.py')
print(join_dir)
# E:/Old_BoyClass_fourth/join\test.py
import os
# 显示指定路径下的文件名称
find_dir = os.listdir(r'E:\Old_BoyClass_fourth\Mv')
print(find_dir)
'''a,b,c文件我自己建的'''
# ['a.txt', 'b.txt', 'c.txt']
import os
# 进阶练习:获取指定目录的文件,选择文件可以进入
# 获取当前文件路径
now_dir = os.path.dirname(__file__) # >>> E:/Old_BoyClass_fourth
# 拼接第一层
one_join = os.path.join(now_dir,r'E:\Old_BoyClass_fourth\Mv') # >>E:\Old_BoyClass_fourth\Mv
# 获取指定目录下的文件
dir_list= os.listdir(r'E:\Old_BoyClass_fourth\Mv') # ['a.txt', 'b.txt', 'c.txt']
# 通过枚举的形式使得文件名由索引值
for index,values in enumerate(dir_list,1):
print(index,values)
# 获取想要查看的文件序号
select_num = input('please input your select number>>>:').strip()
if select_num.isdigit():
select_num = int(select_num)
# 获取文件的索引不能超过文件的个数
if select_num in range(len(dir_list)+1):
# 索引获取对应的文件名称
file_name = dir_list[select_num-1]
# 拼接文件路径,获取a,b,c文件的精确位置
dir_join = os.path.join(one_join,file_name)
# 读取文件
with open(dir_join,'r',encoding='utf8') as read_f:
print(read_f.read())
import os
os.remove(r'E:\Old_BoyClass_fourth\Mv\drop.py')
import os
os.rename('Mv','findtxt')
import os
# 获取当前工作路径
print(os.getcwd()) # E:\Old_BoyClass_fourth
import os
# 获取当前工作路径
print(os.getcwd()) # E:\Old_BoyClass_fourth
os.chdir('D:')
print(os.getcwd()) # D:\
import os
# 存在的情况输出True
print(os.path.exists(r'E:\Old_BoyClass_fourth\findtxt\a.txt'))
print(os.path.exists(r'E:\Old_BoyClass_fourth\findtxt\b.txt'))
# True
# True
# 不存在的情况输出False
print(os.path.exists(r'E:\Old_BoyClass_fourth\findtxt\z.txt'))
# >>>False
import os
# E:\Old_BoyClass_fourth\findtxt\a.txt'
print(os.path.isfile(r'E:\Old_BoyClass_fourth\findtxt\a.txt'))
print(os.path.isfile(r'E:\Old_BoyClass_fourth\findtxt'))
# True
# False
import os
# E:\Old_BoyClass_fourth\findtxt\a.txt'
print(os.path.isdir(r'E:\Old_BoyClass_fourth\findtxt\a.txt'))
print(os.path.isdir(r'E:\Old_BoyClass_fourth\findtxt'))
# False
# True
import os
print(os.path.getsize(r'E:\Old_BoyClass_fourth\findtxt\a.txt'))
# a文本内容:a文件
# 结果>>>7,a为一个字节,文件为六个字节
sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到,也可以自定义添加模块路径(重点)
sys.path.append(路径)
sys.version:获取版本号
sys.platfotm:获取当前系统平台
sys.argv:获取当前执行文件的绝对路径(重点)
import sys
print(sys.path)
print(sys.version)
# 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
print(sys.platform)
# win32
import sys
print(sys.argv) # >>>['E:/Old_BoyClass_fourth/test.py']
import sys
print(sys.argv) # >>>['E:/Old_BoyClass_fourth/test.py']
index_v = sys.argv[1]
print(index_v)
import sys
print(sys.argv) # >>>['E:/Old_BoyClass_fourth/test.py']
index_v = sys.argv[1]
index_v2 = sys.argv[2]
print(index_v,index_v2)
import sys
index_v = sys.argv[1]
index_v2 = sys.argv[2:]
print(index_v,index_v2)
json字符串的标识就是双引号,带双引号的字符串为json字符串
过程:
序列化:dumps()方法
反序列化:loads()方法
jsom模块只支持部分数据类型序列化,如下:
Supports the following objects and types by default:
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
import json
dic = {'username': 'HammerZe', 'pwd': 123}
str_json = json.dumps(dic)
print(str_json)
# 序列化结果:{"username": "HammerZe", "pwd": 123}
dic_json = json.loads(str_json)
print(dic_json)
# 反序列化:{'username': 'HammerZe', 'pwd': 123}
# 文件存储
with open(r'E:\Old_BoyClass_fourth\findtxt\a.txt','w',encoding='utf8') as w_f:
str_json = json.dumps(dic)
w_f.write(str_json)
with open(r'E:\Old_BoyClass_fourth\findtxt\a.txt','r',encoding='utf8') as r_f:
res = r_f.read()
print(json.loads(res))
# 结果
{"username": "HammerZe", "pwd": 123}
{'username': 'HammerZe', 'pwd': 123}
{'username': 'HammerZe', 'pwd': 123}
import json
dic = {'username': 'HammerZe', 'pwd': 123}
# 文件存储
with open(r'E:\Old_BoyClass_fourth\findtxt\a.txt','w',encoding='utf8') as w_f:
seq_str = json.dump(dic,w_f)
with open(r'E:\Old_BoyClass_fourth\findtxt\a.txt','r',encoding='utf8') as r_f:
nonseq_str = json.load(r_f)
print(nonseq_str)
# 结果
# {'username': 'HammerZe', 'pwd': 123}
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'))
'''windows电脑内部编码默认为GBK'''
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/48xz/p/15609309.html
内容来源于网络,如有侵权,请联系作者删除!