ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

内置模块2

2021-11-27 17:31:39  阅读:94  来源: 互联网

标签:内置 res random json 模块 print import os


内容概要

  • random模块
  • os模块
  • sys模块
  • 序列化模块
  • subprocess模块

random模块

import random
print(random.random())  # 0-1之间的小数

image

import random
print(random.randint(1, 9))  # 随机产生1-9之间的整数

image

import random
print(random.uniform(1, 9))  # 随机产生1-9之间的小数

image

import random
print(random.choice([1, 2, 3]))  # 随机抽取一个

image

import random
print(random.sample(['春', '夏', '秋', '冬'], 3))  # 随机抽取指定样本

image

import random
l = [1, 2, 3, 4, 5, 6]
random.shuffle(l) # 随机打乱列表中的元素
print(l)

image

笔试题,随机产生5个数的验证码
import random
for i in range(5):
    ch = ''
    range_int = str(random.choice([0, 9]))
    range_upper = chr(random.choice([65, 90]))
    range_lower = chr(random.choice([97, 122]))
    res = random.choice([range_int, range_upper, range_lower])
    ch += res
    print(ch, end='')

image

os模块

import os
os.mkdir(r'书籍')  # 创建单级目录

image

import os
os.makedirs(r'图集1/影集1')  # 创建多级目录

image

import os
os.rmdir(r'')
os.removedirs(r'')  # 删除空目录
import os
BASE_DIR = os.path.dirname(__file__)  # 获取当前文件的路径
a = os.path.join(BASE_DIR, '书籍')  # 路径拼接
a1 = os.listdir('/Users/mac/PycharmProjects/01/书籍')  # 列举出指定文件下的名称
while True:
    for i, j in enumerate(a1):
        print(i + 1, j)
    choice = input('查看的编号: ').strip()
    if choice.isdigit():
        choice = int(choice)
        if choice in range(len(a1) + 1):
            name = a1[choice - 1]  # 获取编号对应的文件名称
            rain = os.path.join(a, name)  # 拼接文件的完整路径
            with open(rain, 'r', encoding='utf8') as f:
                print(f.read())  # 利用文件操作读写文件

image

import os
os.remove('xxx')  # 删除一个文件
os.rename('老文件名', '新文件名' )  # 修改文件名
print(os.getcwd())  # 获取当前工作路径
os.chdir('')  # 切换路径
print(os.path.exists(''))  # 判断当前路径是否存在
print(os.path.isfile(''))  # 判断当前路径是否是文件
print(os.path.isdir(''))  # 判断当前路径是否是文件夹
print(os.path.getsize(''))  # 获取文件大小(字节数)

sys模块

主要与python解释器打交道
import sys
print(sys.path)  # 查看当前可访问的所有路径
print(sys.version)  # 查看当前python解释器版本号,和其他详细信息
print(sys.platform)  # 查看电脑系统平台
print(sys.argv)  # 获取当前执行文件的绝对路径

image

import sys
try:
    username = sys.argv[1]
    password = sys.argv[2]
    if username == 'sss' and password == '111':
        print('文件正常执行')
    else:
        print('用户名或密码错误')
except Exception:
    print('请输入用户名和密码')
    print('体验(游客模式)')

image

序列化模块

json格式数据:跨语言传输
import json
dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
res = json.dumps(dic)  # 将python其他数据专程json格式字符串
print(res)
print(json.loads(res))  # 反序列化,将json格式字符串转成当前语言的某个数据类型

image

import json
a = b'{"name": "sss", "age": 18, "hobby": "music"}'  # 二进制
z = a.decode('utf8')  # 将二进制转成json格式字符串
c = json.loads(z)  # 然后转成字典
print(c, type(c))

image

把字典写入文件在取出
import json
dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
with open(r'a.txt', 'w', encoding='utf8') as f:
    res = json.dumps(dic)
    print(f.write(res))
with open(r'a.txt', 'r', encoding='utf8') as f1:
    d = f1.read()
    g = json.loads(d)
    print(g, type(g))

image

dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
with open(r'a.txt', 'w', encoding='utf8') as f:
    json.dump(dic, f)
with open(r'a.txt', 'r', encoding='utf8') as f2:
    res = json.load(f2)
    print(res, type(res))

image

dic = {'name': 'sss', 'age': 18, 'hobby': '音乐'}
print(json.dumps(dic, ensure_ascii=False))

image
并不是所有数据类型都支持序列化
json.JSONEncoder 查看支持的数据类型

subprocess模块

1.可以基于网络连接上一台计算机(socket模块)
2.让连接上的计算机执行我们需要执行的命令
3.将命令的结果返回
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
windows电脑内部编码默认是GBK

image

标签:内置,res,random,json,模块,print,import,os
来源: https://www.cnblogs.com/sly0/p/15609666.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有