sys模块,os模块,os下的path模块,random模块和shutil模块

  今天学习了sys模块,os模块,os下的path模块,random模块和shutil模块

  一、random模块

    random模块是一个随机数生成模块

    random.random() 会得到一个不包括1的随机浮点数

    random.randint(1,10) 会得到包括1和10的整数

    random.randrange(1,10) 会得到包括1 不包括10的整数

    random.sample(['aaa',['a','b'],3,4,5],2)  指定一个范围并指定需要的随机个数

    ls = ['1','2','3','4','5']

    random.shuffle(ls) 打乱顺序 洗牌 改的原有列表

    print(ls)

    print(random.choice([1,2,3])) 随机选一个

    print(random.choices([1,2,3,4,5,6,7],k = 2))

    写一个随机验证码 长度自定义 包括0-9 A-Z a-z

    def get_auth_code(lenth):

      res = ''

      for i in range(lenth):

        a = random.randint(0,9)

        b = chr(random.randint(65,90))

        c = chr(random.randint(97,122))

        s = random.choice(a,b,c)

      return res

    print(get_auth_code(4))

    print(random.uniform(1,3))  获得一个1-3中不包括1和3的浮点数

  二、sys模块

    sys.path 查看当前的环境变量

    sys.modules 查看已经加载的模块

    sys.argv 获取终端调用时的参数

    sys.version 获取解释器的版本信息

    sys.platform 获取当前平台名称

    sys.exit(n) 退出程序,正常退出时exit(0)

  三、os模块

    os 主要用于与操作系统进行交互

    os.getcwd() 获取当前的工作目录

    os.chdir(‘D:\上海python全栈4期\day20\pack’) 切换工作目录

    os.curdir 返回当前目录:('.')

    os.pardir 获取当前目录的父目录字符串名: ('..')

    os.makedirs('1/2/3') 可生成多层递归目录

    os.removedirs('1/2/3') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

    os.mkdir('a') 生成胆机目录;相当于shell中mkdir a

    os.rmdir('a') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中的rmdir a

    os.remove() 删除一个文件

    os.listdir('a') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

    os.rename('oldname','newname') 重命名文件/目录

    os.stat('path/filename') 重命名文件/目录

    os.sep 输出操作系统特定的路径分隔符,win下为'\\',Linux下为'/'

    os.linesep 输出当前平台使用的行终止符,win下为'\t\n',LInux下为'\n'

    os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:

    os.name  输出字符串指示当前使用平台。 win ->'nt';Linux->'posix'

    os.system('bash command') 运行shell命令,直接显示

    os.environ 获取系统环境变量

 

  四、path模块

    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.exists(path) 如果path存在,返回True;如果path不存在,返回False

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

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

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

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

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

    os.path.getsize(path) 返回path的大小

    normcase 用于将路径规范化 会将大写转为小写 斜杠改为当前系统分隔符

    print(os.path.normcase('\\a\\b\\ABCS'))

    normpath 用于将路径规范化 不仅将非法的分隔符替换为合法分隔符 还将大写转为小写 并且会执行..的回到上一层

    print(os.path.normpath('/a/b/../ABCS'))

  五、shutil 模块

    非常简便的文件操作 压缩包处理模块

    shutil.copyfileobj 拷贝文件 提供两个文件对象 长度表示缓冲区大小

    shutil.copyfile(src,dst) 拷贝文件 提供两个文件路径

    shutil.copymode() 拷贝文件权限 提供两个文件路径

    shutil.copystat(src,dst) 拷贝文件和状态信息 提供两个文件路径

    

    shutil.ignore_patterns('mps','*.py')

    shutil.copytree(src,dst,symlinks = False,igore = None) 拷贝目录

    symlinks 默认False 将软连接拷贝到硬链接 否则拷贝为软连接

    shutil.rmtree 删除目录 可以设置忽略文件

    shutil.move(src,dst)

    移动目录和文件

  压缩与解压缩

    shutil 可以打包 但是无法解包 并且打包也是调用tarfile 和zipFIle完成解压需要按照格式调用对应的模块

    打包

    shutil.make_archive('test','tar','/Users/jerry/PycharmProjects/package/package1')

    import tarfile,zipfile

     zip压缩

    z = zipfile.ZipFile('test.zip','w')

    z.write('sys.py')

    z.write('start.py')

    z.close()

    zip解压

    z = zipfile.ZipFile('test.zip','r')

    z.extractall('/User/jerry/PycharmPrijects/package/aaa')

    z.close()

     tar压缩

    t = tarfile.open('teat.tar','w')

    t.add('start.py')

    t.add('sys.py')

    t.close()

     tar解压

    t = tarfile.open('test.tar')

    t.extractall('aaa/')

    t.close()

posted @ 2018-10-16 19:34  小菜鸟张阳阳  阅读(268)  评论(0编辑  收藏  举报