第五章 模块之 getpass、sys、os

白昼怎懂夜的黑 提交于 2019-11-26 14:37:55

5.5 getpass 密码不显示(只能在终端运行)

  • 密码不显示(只能在终端运行)

    import getpass​pwd = getpass.getpass('请输入密码:')if pwd == '123':    print('输入正确')

     

5.6 sys 解释器相关模块

  • sys.getrefcount,获取一个值的应用计数

    import sysa = [11,22,33]b = aprint(sys.getrefcount(a))   # 3
  • sys.getrecursionlimit,python默认支持的递归数量

    import sys​print(sys.getrecursionlimit())  # 1000
  • sys.stdout.write ----> print (可以查看进度)

    import timefor i in range(1,101):    mag = "%s%%\r" %i    print(mag,end="")    time.sleep(0.05)    #从1%长到100%
    import os# 1.读取文件大小(字节)file_size = os.stat('day001.zip').st_size# 文件大小# 2.一点一点的读取文件read_size = 0   # 阅读大小with open('day001.zip',mode='rb') as f1 , open ('a.zip',mode='wb') as f2:    while read_size < file_size:        chunk = f1.read(1024) #每次最多读取1024字节        f2.write(chunk)        read_size += len(chunk) #阅读大小=阅读大小+读取长度        val = int(read_size/file_size * 100) # 求当前读取%数        print('%s%%\r'%val,end='')
  • sys.argv 获取用户执行脚本时,传入的参数。

    """让用户执行脚本传入要删除的文件路径,在内部帮助用将目录删除。C:\Python36\python36.exe D:/code/s21day14/7.模块传参.py D:/testC:\Python36\python36.exe D:/code/s21day14/7.模块传参.py​"""import sys​# 获取用户执行脚本时,传入的参数。# C:\Python36\python36.exe D:/code/s21day14/7.模块传参.py D:/test# sys.argv = [D:/code/s21day14/7.模块传参.py, D:/test]path = sys.argv[1]​# 删除目录import shutilshutil.rmtree(path)
  • sys.path 模块搜索 默认Python去导入模块时,会按照sys.path中的路径挨个查找。

    # import sys# sys.path.append('D:\\')# import oldboy
  • sys.exit(0) 终止程序

  • sys.modules 存储当前程序用到的所有模块,反射文件中的内容

    import demo # 导入自定义py文件import sysprint(demo)print(sys.modules)print(demo is sys.modules['demo'])print(getattr(sys.modules['demo'],'a'))

     

5.7 os 操作系统相关

  • os.path.exists(path) 判断文件目录是否存在 , 如果path存在,返回True;如果path不存在,返回False

    os.path.isfile(path) 判断文件是否存在

    os.path.basename(file_path) 获取文件名

  • os.stat('文件').st_size , 获取文件大小

    os.path.getsize(path) 获取文件大小

  • os.path.abspath() , 获取一个文件的绝对路径 (__file__)获取当前文件绝对路径

    os.path.isabs(path) 判断是否为绝对路径

    path = '20190409_192149.mp4' # E:\Python_WorkSpace\day014 装饰器带参数\day001.zip​import osv1 = os.path.abspath(path)print(v1)# E:\Python_WorkSpace\day014 装饰器带参数\day001.zip​# 获取当前文件的绝对路径a = os.path.abspath(__file__)print(a)
  • os.path.dirname ,获取路径的上级目录

    import osv = r"E:\Python_WorkSpace\day014 装饰器带参数\day001.zip"​print(os.path.dirname(v))# E:\Python_WorkSpace\day014 装饰器带参数
  • os.path.join ,路径的拼接

    import ospath = "E:\Python_WorkSpace\day014" # user/index/inx/fasd/v = 'n.txt'​result = os.path.join(path,v)print(result)result = os.path.join(path,'n1','n2','n3')print(result)# E:\Python_WorkSpace\day014\n.txt# E:\Python_WorkSpace\day014\n1\n2\n3
  • os.listdir , 查看一个目录下所有的文件【第一层】

    import os​result = os.listdir(r'E:\Python_WorkSpace\day014 装饰器带参数')for path in result:    print(path)
  • os.walk , 查看一个目录下所有的文件【所有层】

    import os​result = os.walk(r'E:\Python_WorkSpace\day014 装饰器带参数')for a,b,c in result:    # a,正在查看的目录 b,此目录下的文件夹  c,此目录下的文件    for item in c:        path = os.path.join(a,item)        print(path)
  • os.makedirs,创建目录和子目录

    import osfile_path = r'db\xx\xo\xxxxx.txt' # 文件路径​file_folder = os.path.dirname(file_path) # 文件夹if not os.path.exists(file_folder): # 判断文件夹是否存在    os.makedirs(file_folder)    # 创建文件夹​with open(file_path,mode='w',encoding='utf-8') as f:    f.write('asdf')
  • os.renname,重命名

    import osos.rename('db','sb')
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!