python模块学习1

一、random模块

 

在未来的开发中,我们可能需要用到生成随机数,这样就需要用到random模块
import random


print(random.random())   # 随机生成0-1中的数
print(random.randint(1, 8))  # 随机生成指定整数范围中的数,如1到8的整数,包括1和8
print(random.randrange(1, 8))  # 随机生成指定的数的范围,如1到8,左开右闭
print(random.choice('hello world!'))   # 随机生成序列中的元素
print(random.choice([1, 'hello', (24, 3)]))

案例:验证码生成器

# 一个len长度为5位的字母数字混合的验证码
def code():
    co = ""
    for i in range(5):
        p = random.choice([random.randrange(10), chr(random.randrange(65, 91))])
        co += str(p)

    print(co)


code()

指定验证码的偶数位是数字,奇数位是字母

def code():
    co = ""
    for i in range(1, 6):
        if i % 2 == 0:
            p = str(random.randrange(10))
        else:
            p = str(chr(random.randrange(65, 91)))
        co += p

    print(co)


code()

附:

chr()是内置函数

def chr(*args, **kwargs): # real signature unknown
    """ Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff. """
    pass

 

二、os模块

os模块这是一个调用操作系统接口的一个模块

目录操作

import os
# 目录操作
# 创建目录
os.mkdir('test')     # 创建当前目录下同级目录

os.mkdir(r'D:\zgzeng\test2')    # 在指定的目录下创建目录

# 判断是否创建成功
print(os.path.isdir('test'))         # True
print(os.path.isdir(r'D:\zgzeng\test2'))       # True

os.makedirs(r'a\b\c')    # 在相对路径下创建递归目录
os.makedirs(r'D:\zgzeng\test3\test4\test5')   # 在指定的目录下创建递归目录
print(os.path.isdir(r'D:\zgzeng\test3\test4\test5'))   # True
print(os.path.exists(r'a\b\c'))     # True,判断目录是否存在


# 删除目录
os.rmdir(r'a\b\c')    # 删除指定的空目录  ,只能删除一层目录,也就是c目录
os.rmdir(r'D:\zgzeng\test2')   # 指定删除空目录
print(os.path.exists(r'a\b\c'))    # False

os.removedirs(r'a\b')    # 递归删除空的目录
print(os.path.isdir(r'a\b'))   # False

# 重命名目录
os.rename(r'.\test', r'.\test2')    # 指定修改文件目录名,如果在当前目录下存在test2这个目录,那么就会报错
print(os.path.isdir('test'))       # False
print(os.path.isdir('test2'))      # True


# 获取目录
print(os.listdir(r'D:\zgzeng\pychon基础\reee'))    # 指定路径,列出该路径目录下包含的文件夹和文件名
# ['1', '1-异常.py', '2-异常处理格式2.py', '3-异常处理3.py', '4-捕获异常.py', '5-捕获具体的异常信息.py', '6-异常处理机制.py', '7-自定义异常.py', '8-案例.py', 'datas_1.py', 'lianxi.py', '__pycache__']

# 返回当前目录
print(os.getcwd())    # D:\zgzeng\pychon基础  获取当前工作路径

# 返回上级路径
os.chdir('..')  # 返回到指定路径,这里返回上一级路径
print(os.getcwd())   # D:\zgzeng
os.chdir(r'C:\Users')
print(os.getcwd())   # C:\Users


# 删除文件
os.remove('test.txt')   # 删除指定文件
os.remove(r'D:\zgzeng\1.txt')

# 获取指定文件/目录信息
print(os.stat('1.txt'))
# os.stat_result(st_mode=33206, st_ino=2533274790396271, st_dev=2221381207, st_nlink=1, st_uid=0, st_gid=0, st_size=34, st_atime=1597026039, st_mtime=1597026039, st_ctime=1592642197)
os.system("bash command")  运行shell命令,直接显示

os.path.abspath(path)  返回path规范化的绝对路径

  os.path.split(path)  将path分割成目录和文件名二元组返回

  os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素

  os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.isabs(path)  如果path是绝对路径,返回True

os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

文件操作

os.open()方法打开一个文件,并且设置需要打开的选项

import os

# os.open(file, flags[,mode])
# file参数是需要打开的文件,
# flags
os.open('qq号码.py', os.O_RDONLY)           # 以只读的方式打开
os.open('qq号码.py', os.O_WRONLY)           # 以只写的方式打开
os.open('qq号码.py', os.O_RDWR)             # 以读写的方式打开
os.open('qq号码.py', os.O_NOINHERIT)        # 打开不阻塞
os.open('qq号码.py', os.O_APPEND)           # 以追加的方式打开
os.open('qq号码2.py', os.O_CREAT)           # 创建并打开一个新文件
os.open('file', os.O_TRUNC)            # 打开一个文件并截断它的长度(必须有写的权限)
os.open('qq号码.py', os.O_EXCL)             # 如果指定文件存在,返回错误

os.write()方法用于写入字符串到文件中,描述符fd中,返回实际写入的字符串长度

os.lseek()方法用于设置文件描述符fd当前位置为pos,how方式修改

os.read()方法用于从文件描述符fd中读取最多n字节,返回包含读取字节的字符串,文件描述符fd对应文件已达到结尾,返回一个空字符串

os.fsync() 方法强制将文件描述为fd的文件写入硬盘

os.close()方法用于关闭文件描述符fd

f = os.open('test.txt', os.O_CREAT | os.O_RDWR)  # 打开文件
os.write(f, b'This is test')   # 写入内容

os.fsync(f)   # 将字符串刷新到硬盘上

os.lseek(f, 0, 0)    # 将指针置为0

text = os.read(f, 100)  # 读取文件
print(text)    # b'This is test'
os.close(f)

 

posted @ 2020-08-11 10:50  zgzeng  阅读(161)  评论(0编辑  收藏  举报