random模块os模块

发布时间 2023-09-21 21:27:30作者: 无聊闲作

random模块os模块

random模块

import random
# print(random.random())#o-1的小数0.654381741577838
# print(random.uniform(1,3))#大于1小于32.1890586235082763
# print(random.randint(1,10))#3  1-10的整数随机
#print(random.randrange(0,30,2))#8偶数随机

#print(random.randrange(1,30,2))#7奇数的随机
#print(random.choice([1,2,3,4,[22,33,44]]))#随机列表里的一个元素1或【22,33,44】
# random.choice(1,4)#choice() takes 2 positional arguments but 5 were given
# random.choice([1,2,3,4,5,])
# print(random.choice(['hhh','哈哈哈哈','嘿嘿嘿','呵呵哈哈哈']))#嘿嘿嘿随机出来一个结果
# print(random.sample([1,'请问','我靠',3,['HoH','234']],2))#['请问', ['HoH', '234']]列表元素任意2个组合
# item = [1, 3, 5, 7, 9]
# random.shuffle(item)  # 打乱次序 洗牌
# print(item)
'''
随机生成验证码
'''
# def get_code(n=4):
#
#     code=' SF-'
#     for i in range(n):
#         random_int=str(random.randint(0,9))
#         random_upper=chr(random.randint(69,90))#随机A-Z
#         random_lower=chr(random.randint(97,122))#a-z
#         temp=random.choice([random_int, random_upper, random_lower])
#         code += temp
#     return code
# print(get_code())

"""
循环生成随机快递码
"""
import time
def get_code():
    code="SF"+time.strftime('%Y%m%d%H%M%S')
    for i in range(8):
        random_int=str(random.randint(0,9))
        random_uppar=chr(random.randint(65,90))
        random_sum=chr((random.randint(97,122)))
        funs=random.choice([random_uppar,random_int,random_sum])
        code+=funs
    return code

print(get_code())


os模块

"""


"""

import os
# os.mkdir('qwe')#创建一个文件夹
# os.makedirs('qwe/qw/q')#创建多个文件夹
# os.rmdir('qe')#删除一个空文件
# os.removedirs(r'D:\python27\by21\qwe\qw\q')#删除空文件递归到上一级如果为空就删除
# res=os.listdir(r'D:\python27\by21')#可以查看文件下的目录包括隐藏文件并以列表的形式打印
# print(res)
# res = os.getcwd()  # 获取当前工作目录,即当前python脚本工作的目录路径
# print(res)
# os.chdir(r"D:\python27\by21\qwe")  # 改变当前脚本工作目录;相当于shell下cd
# res = os.getcwd()
# print(res)#打印上一级目录

os.mkdir('aaa')
# os.path
# res=os.path.abspath(r'D:\Python27\day23\bbb') #  返回path规范化的绝对路径os.path.split(path) 将path分割成目录和文件名二元组返回
# res=os.path.abspath(r'D:\Python27\day23\bbb\3.txt') #  返回path规范化的绝对路径os.path.split(path) 将path分割成目录和文件名二元组返回
# absolute 绝对的
# relative 相对的
# 绝对定位 相对定位
# res=os.path.abspath(r'bbb') #  返回path规范化的绝对路径os.path.split(path) 将path分割成目录和文件名二元组返回
# print(res) # D:\Python27\day23\bbb D:\Python27\day23\bbb\3.txt D:\Python27\day23\bbb

# res=os.path.dirname(r'D:\Python27\day23\bbb\3.txt') # 返回path的目录。其实就是os.path.split(path)的第一个元素
# res=os.path.dirname(os.path.dirname(r'D:\Python27\day23\bbb\3.txt')) # 返回path的目录。其实就是os.path.split(path)的第一个元素
# res=os.path.dirname(r'D:\Python27\day23\bbb') # 返回path的目录。其实就是os.path.split(path)的第一个元素
# res=os.path.dirname(r'D:\Python27\day23') # 返回path的目录。其实就是os.path.split(path)的第一个元素
# res=os.path.dirname(os.path.dirname(os.path.dirname(r'D:\Python27\day23\bbb\3.txt')))
# print(res) # D:\Python27\day23\bbb
#
# res=os.path.basename(r'D:\Python27\day23\bbb\3.txt') # 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
# print(res) # 上传图片的时候会用到  D:\Python27\day23\bbb\1.png # 验证后缀名,png jpg jpeg

"""它可以判断文件,也可以判断文件夹"""
# res=os.path.exists(r'D:\Python27\day23\bbb\3.txt')  # 如果path存在,返回True;如果path不存在,返回False
# res=os.path.exists(r'D:\Python27\day23\bbb\aaaa')  # 如果path存在,返回True;如果path不存在,返回False
# print(res)

# if not os.path.exists(r'D:\Python27\day23\ccc'):
#     os.mkdir(r'D:\Python27\day23\ccc')

# res=os.path.isabs(r'D:\Python27\day23\ccc')  # 如果path是绝对路径,返回True
# res=os.path.isabs(r'ccc')  # 如果path是绝对路径,返回True
# print(res)

# res=os.path.isfile(r'D:\Python27\day23\bbb\3.txt')  # 如果path是一个存在的文件,返回True。否则返回False
# res1=os.path.isdir(r'D:\Python27\day23\bbb\3.txt')  # 如果path是一个存在的文件,返回True。否则返回False
# print(res)
# print(res1)

# base_dir = r'D:\Python27\day23'  # // \ /
# path = base_dir + '\\' + 'bbb' + '\\' + 'aaa' # D:\Python27\day23\bbb\aaa
# print(path)
# """会检测系统,Windows \\ linux // """
# """路径的拼接,不用考虑路径分隔符"""
# # res=os.path.join(base_dir, 'bbb', 'aaa')  # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# res=os.path.join(base_dir, 'bbb', 'aaa', 'qqq', 'aaa', 'zzz', 'xxx')  # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# print(res)

res=os.path.getatime(r'D:\Python27\day23\bbb\3.txt')  # 返回path所指向的文件或者目录的最后访问时间
res1=os.path.getmtime(r'D:\Python27\day23\bbb\3.txt')  # 返回path所指向的文件或者目录的最后修改时间
print(res, res1)
# 0字节
res2=os.path.getsize(r'D:\Python27\day23\bbb\3.txt') # 返回path的大小
print(res2)
"""判断文件是否为空"""

练习

"""
1. jerry老师.mp4
2. kevin老师.mp4
3. tank老师.mp4
4. tony老师.mp4
"""
import os

# print(__file__) # D:/Python27/day23/03 播放小视频练习.py
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
data_movie_list_path=os.path.join(BASE_DIR, '小视频') #
data_movie_list=os.listdir(r'%s' % data_movie_list_path)
print(data_movie_list)  # ['jerry老师.mp4', 'kevin老师.mp4', 'tank老师.mp4', 'tony老师.mp4']

while True:
    for i, j in enumerate(data_movie_list):
        print(i + 1, j)

    choice = input('请输入你想看的小视频序号:').strip()

    # 1. 判断输入的内容必须是数字
    if choice.isdigit():
        # 2. 输入的数字范围必须是文件的个数
        # 1 2 3 4 5 6
        choice = int(choice)
        if choice in range(1, len(data_movie_list)+1):
            # 3. 拼接成: D:\Python27\day23\小视频\jerry老师.mp4
            video_file_path=os.path.join(data_movie_list_path, data_movie_list[choice-1])
            print(video_file_path)
            # 4. 播放:读取文件
            with open(video_file_path, 'r', encoding='utf-8') as f:
                print(f.read())
                
                
 os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'