第五章 模塊之 getpass、sys、os

5.5 getpass 密碼不顯示(只能在終端運行)

  • 密碼不顯示(只能在終端運行)python

    import getpass

    pwd = getpass.getpass('請輸入密碼:')
    if pwd == '123':
       print('輸入正確')

     

5.6 sys 解釋器相關模塊

  • sys.getrefcount,獲取一個值的應用計數app

    import sys
    a = [11,22,33]
    b = a
    print(sys.getrefcount(a)) # 3
  • sys.getrecursionlimit,python默認支持的遞歸數量ui

    import sys

    print(sys.getrecursionlimit()) # 1000
  • sys.stdout.write ----> print (能夠查看進度)spa

    import time
    for 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:/test
    C:\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 shutil
    shutil.rmtree(path)
  • sys.path 模塊搜索 默認Python去導入模塊時,會按照sys.path中的路徑挨個查找。code

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

  • sys.modules 存儲當前程序用到的全部模塊,反射文件中的內容ip

    import demo # 導入自定義py文件
    import sys
    print(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不存在,返回Falseutf-8

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

    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 os
    v1 = os.path.abspath(path)
    print(v1)
    # E:\Python_WorkSpace\day014 裝飾器帶參數\day001.zip

    # 獲取當前文件的絕對路徑
    a = os.path.abspath(__file__)
    print(a)
  • os.path.dirname ,獲取路徑的上級目錄

    import os
    v = r"E:\Python_WorkSpace\day014 裝飾器帶參數\day001.zip"

    print(os.path.dirname(v))
    # E:\Python_WorkSpace\day014 裝飾器帶參數
  • os.path.join ,路徑的拼接

    import os
    path = "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 os
    file_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 os
    os.rename('db','sb')
相關文章
相關標籤/搜索