ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python内置模块之random,os,sys,json,subprocess

2021-11-26 16:31:39  阅读:171  来源: 互联网

标签:python random subprocess json 文件夹 print 序列化 os


image

1. random随机数模块

import random

# 1. 随机产生一个0-1之间的小数
print(random.random())

# 2. 随机产生一个1-6之间的整数
print(random.randint(1,6))

# 3. 随机产生一个1-6之间的小数
print(random.uniform(1,6))

# 4. 随机抽取一个
print(random.choice(['特等奖','一等奖','二等奖','三等奖','纪念奖']))

# 5. 随机抽取指定数量样本
print(random.sample(['安徽省','江苏省','山东省','广东省','四川省','云南省'], 2))

# 6. 随机打乱容器类型中的诸多元素
l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
random.shuffle(l)
print(l)
# [2, 1, 13, 8, 9, 6, 12, 5, 4, 10, 7, 14, 11, 3, 15]

前几年搜狗公司笔试题

"""
编写五位随机验证码,可以是由数字,小写字母,大写字母任意组合。
"""
import string
import random

# 方法一:使用string模块
code = ''
for i in range(5):
    # 全部大小写英文字符
    letters = string.ascii_letters
    # 随机抽取全部大小写英文字母
    letters1 = random.choice(letters)
    # 随机生成0-9其中数字
    number = random.randint(0, 9)
    tar_code = random.choice([letters1, number])
    code += str(tar_code)

print(code)


# 方法二:
code1 = ''
for j in range(5):
    letter_upper = chr(random.randint(65, 90))
    letter_lower = chr(random.randint(97, 122))
    number1 = random.randint(0, 9)
    tar_code1 = random.choice([letter_lower, letter_upper, number1])
    code1 += str(tar_code1)

print(code1)

2. os模块

重点是:os模块主要与操作系统打交道!!!

import os

# 1. 创建单级目录(文件夹)
os.mkdir('文件夹名字')
os.mkdir(r'文件夹名字\文件加名字22')  # 直接报错,只能创建单级目录

# 2. 创建多级目录(文件夹)
os.makedirs(r'文件夹\文件夹2\文件夹3')

# 3. 删除空文件夹(空目录)
os.rmdir()  # 只有空文件夹才可以删,局限很大
os.removedirs()  # 只有空文件夹才能删除

# 4. 列举指定路径下的文件名称,包含任意类型文件
print(os.listdir(r'D:/'))

# 5. 拼接文件完整路径***********
# 专门用于路径啤酒,并且能够自动识别当前系统的路径分隔符
os.path.join()

# 6. 当前文件所在路径,还可以嵌套,则为上一级路径
BASE_DIR = os.path.dirname(__file__)
mo_dir = os.path.join(BASE_DIR, '教学视频')

# 7. 删除一个文件
os.remove('文件名')

# 8. 修改文件名称
os.rename('原文件名', '新文件名')

# 9. 获取当前工作路径
print(os.getcwd())

# 10. 切换路径
os.chdir('想要切换的路径')

# 11. 判断当前路径是否存在,既可以判断文件夹,也可以判断文件。
os.path.exists('想判断的对象')
# 12. 判断当前路径是否是文件
os.path.isfile('想判断的对象')
# 13. 判断当前路径是否是文件夹
os.path.isdir('想判断的对象')

# 14. 获取文件大小(字节数)
os.path.getsize()

3. sys模块

重点是:主要与python解释器打交道

import sys

# 系统路径,是个列表
print(sys.path)

sys.exit(1)     # 退出程序,几乎不用
sys.version()   # 版本
sys.platform()  # 平台

print(sys.argv)
# 单独打印,获取当前文件的绝对路径
# 我们不怎么用,但是很多软件底层会用到

4. json(序列化)模块

json格式数据:实现跨语言传输

import json

d = {'name':'joshua', 'age':28}
# 1. 将python其他数据类型转成json格式字符串
"""双引号是json格式的独有特征"""
res = json.dumps(d)  # 序列化
print(res, type(res))
# {"name": "joshua", "age": 28} <class 'str'>

# 2. 将json格式字符串转换成当前语言对应的某个数据类型
res1 = json.loads(res)  # 反序列化
print(res1, type(res1))
# {'name': 'joshua', 'age': 28} <class 'dict'>


"""
可以暂时简单理解为:
	序列化就是将其他数据类型转换成字符串的过程
		json.dumps()
	反序列化就是将字符串转换成其他数据类型
		json.loads()
"""

# 将字典写入文件快捷方法
# json.dump()  相当于先dumps再write
# json.load()  相当于先loads再read

with open(r'a.txt', 'w', encoding='utf8') as f:
	json.dump(d, f)

with open(r'a.txt', 'r', encoding='utf8') as r:
	res = json.load(f)

ensure_ascii=False
# 上式可以阻止json序列化的时候会将中文转换成unicode类型

# 并不是所有的数据类型都支持序列化
# 例如集合set就没有办法序列化,但是不重要
可以通过:json.JSONEncoder查看支持序列化反序列化的类型。

image

5. subprocess模块

import subprocess

"""
1. 基于网络连接上一台计算机(socket模块)
2. 让连接上的计算机执行我们需要的命令
3. 将命令的结果返回给我们(当然也可以不返回)

"""
# tasklist:查看当前计算机正在跑着的程序列表。

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'))
# 用来获取错误命令执行之后的结果

"""在zgwindows底层用的是gbk"""

标签:python,random,subprocess,json,文件夹,print,序列化,os
来源: https://www.cnblogs.com/Joshua-jiaxue/p/15608411.html

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

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

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

ICode9版权所有