python模組學習1
阿新 • • 發佈:2020-08-11
一、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)