內建模組2
阿新 • • 發佈:2021-11-27
內容概要
- random模組
- os模組
- sys模組
- 序列化模組
- subprocess模組
random模組
import random
print(random.random()) # 0-1之間的小數
import random
print(random.randint(1, 9)) # 隨機產生1-9之間的整數
import random
print(random.uniform(1, 9)) # 隨機產生1-9之間的小數
import random
print(random.choice([1, 2, 3])) # 隨機抽取一個
import random print(random.sample(['春', '夏', '秋', '冬'], 3)) # 隨機抽取指定樣本
import random
l = [1, 2, 3, 4, 5, 6]
random.shuffle(l) # 隨機打亂列表中的元素
print(l)
筆試題,隨機產生5個數的驗證碼 import random for i in range(5): ch = '' range_int = str(random.choice([0, 9])) range_upper = chr(random.choice([65, 90])) range_lower = chr(random.choice([97, 122])) res = random.choice([range_int, range_upper, range_lower]) ch += res print(ch, end='')
os模組
import os
os.mkdir(r'書籍') # 建立單級目錄
import os
os.makedirs(r'圖集1/影集1') # 建立多級目錄
import os
os.rmdir(r'')
os.removedirs(r'') # 刪除空目錄
import os BASE_DIR = os.path.dirname(__file__) # 獲取當前檔案的路徑 a = os.path.join(BASE_DIR, '書籍') # 路徑拼接 a1 = os.listdir('/Users/mac/PycharmProjects/01/書籍') # 列舉出指定檔案下的名稱 while True: for i, j in enumerate(a1): print(i + 1, j) choice = input('檢視的編號: ').strip() if choice.isdigit(): choice = int(choice) if choice in range(len(a1) + 1): name = a1[choice - 1] # 獲取編號對應的檔名稱 rain = os.path.join(a, name) # 拼接檔案的完整路徑 with open(rain, 'r', encoding='utf8') as f: print(f.read()) # 利用檔案操作讀寫檔案
import os
os.remove('xxx') # 刪除一個檔案
os.rename('老檔名', '新檔名' ) # 修改檔名
print(os.getcwd()) # 獲取當前工作路徑
os.chdir('') # 切換路徑
print(os.path.exists('')) # 判斷當前路徑是否存在
print(os.path.isfile('')) # 判斷當前路徑是否是檔案
print(os.path.isdir('')) # 判斷當前路徑是否是資料夾
print(os.path.getsize('')) # 獲取檔案大小(位元組數)
sys模組
主要與python直譯器打交道
import sys
print(sys.path) # 檢視當前可訪問的所有路徑
print(sys.version) # 檢視當前python直譯器版本號,和其他詳細資訊
print(sys.platform) # 檢視電腦系統平臺
print(sys.argv) # 獲取當前執行檔案的絕對路徑
import sys
try:
username = sys.argv[1]
password = sys.argv[2]
if username == 'sss' and password == '111':
print('檔案正常執行')
else:
print('使用者名稱或密碼錯誤')
except Exception:
print('請輸入使用者名稱和密碼')
print('體驗(遊客模式)')
序列化模組
json格式資料:跨語言傳輸
import json
dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
res = json.dumps(dic) # 將python其他資料專程json格式字串
print(res)
print(json.loads(res)) # 反序列化,將json格式字串轉成當前語言的某個資料型別
import json
a = b'{"name": "sss", "age": 18, "hobby": "music"}' # 二進位制
z = a.decode('utf8') # 將二進位制轉成json格式字串
c = json.loads(z) # 然後轉成字典
print(c, type(c))
把字典寫入檔案在取出
import json
dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
with open(r'a.txt', 'w', encoding='utf8') as f:
res = json.dumps(dic)
print(f.write(res))
with open(r'a.txt', 'r', encoding='utf8') as f1:
d = f1.read()
g = json.loads(d)
print(g, type(g))
dic = {'name': 'sss', 'age': 18, 'hobby': 'music'}
with open(r'a.txt', 'w', encoding='utf8') as f:
json.dump(dic, f)
with open(r'a.txt', 'r', encoding='utf8') as f2:
res = json.load(f2)
print(res, type(res))
dic = {'name': 'sss', 'age': 18, 'hobby': '音樂'}
print(json.dumps(dic, ensure_ascii=False))
並不是所有資料型別都支援序列化
json.JSONEncoder 檢視支援的資料型別
subprocess模組
1.可以基於網路連線上一臺計算機(socket模組)
2.讓連線上的計算機執行我們需要執行的命令
3.將命令的結果返回
import subprocess
res = subprocess.Popen('tasklist',
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
print('stdout', res.stdout.read().decode('gbk'))
print('stderr', res.stderr.read().decode('gbk'))
windows電腦內部編碼預設是GBK