python常用模塊二
阿新 • • 發佈:2018-12-28
else none 使用 復制代碼 模塊 拼接 elephant com 獲取
namedtuple
命名元組 ->類似創建了一個類
from collections import namedtuple p = namedtuple("point", ["x","y"]) p1 = p("bob", "jack") print(p1) print(p1.x) print(p1.y) 運行結果: point(x=‘bob‘, y=‘jack‘) bob jack
os操作系統交互的模塊
import os 文件和文件夾相關 os.remove(‘file_name‘) #刪除文件 os.rename(‘old‘,‘new‘) #重命名文件名 os.mkdir(‘dir_name‘) #創建一個空目錄 os.rmdir(‘dir_name‘) #刪除單級空目錄 os.makedirs(‘dir1/dir2/dir3‘) #創建多級目錄 os.removedirs(‘dir1/dir2/dir3‘) #刪除多級空目錄 print(os.listdir(‘E:\dir1‘)) #目錄下的所有文件以列表顯示 print(os.stat(‘E:/PyPractise/test.py‘)) #查看文件屬性 工作目錄相關的 os.system("bash command") #運行shell命令,直接顯示 os.popen("bash command).read() #運行shell命令,獲取執行結果 ret = os.popen(‘dir‘).read() print(ret) print(os.getcwd()) #獲取當前工作目錄 os.chdir("dirname") #改變當前腳本工作目錄;相當於shell下cd os.chdir(r‘E:\U‘) open(‘test‘,‘w‘).close() #創建文件\創建文件夾實際上都是跟著工作目錄走的,和你當前執行的這個文件並沒有關系路徑相關的 os.path.*** print(os.path.abspath(r‘test.txt‘)) #打印文件絕對路徑 E:\Py3Practise\day01\bob.txt print(os.path.split(r‘E:\測試目錄\test.txt‘)) #根據路徑和文件名分割成元組 (‘E:\\測試目錄‘, ‘test.txt‘) print(os.path.dirname(r‘E:\測試目錄\test.txt‘)) #獲取文件的目錄 E:\測試目錄 print(os.path.basename(r‘E:\測試目錄\test.txt‘)) #獲取文件的文件名 test.txt dir_name = os.path.dirname(__file__) #打印當前路徑的全路徑目錄 open(os.path.join(dir_name,‘test‘),‘w‘) #在當前目錄下創建一個test的文件 print(os.path.exists(r‘E:\s17\day17\test1‘)) #判斷路徑是否存在(True/False) print(os.path.isabs(r‘E:\Py3Practise‘)) #如果path是絕對路徑,返回True/False print(os.path.isfile(r‘E:\測試目錄\test.txt‘)) #如果path是一個存在的文件,返回True/False print(os.path.isdir(r‘E:\測試目錄‘)) #如果path是一個存在的目錄,返回True/False print(os.path.join(‘E:\\‘,‘測試目錄‘,‘test.txt‘)) #路徑拼接 E:\測試目錄\test.txt print(os.path.getatime(r‘E:\測試目錄\test.txt‘)) #返回文件件或目錄的最後訪問時間 1545831948.7886515 print(os.path.getmtime(r‘E:\測試目錄\test.txt‘)) #返回文件或目錄的最後修改時間 1545831954.4927616 print(os.path.getsize(r‘E:\測試目錄\test.txt‘)) #計算文件大小 3 print(os.path.getsize(r‘E:\測試目錄‘)) #計算文件夾屬性大小 0 其他屬性 print(os.sep) #輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" print(os.linesep) #輸出當前平臺使用的行終止符,win下為"\r\n",Linux下為"\n" print(os.pathsep) #輸出用於分割文件路徑的字符串,win下為;,Linux下為: 結果 ;
sys模塊
1 print(sys.version) # 獲取Python解釋程序的版本信息 2 print(sys.path) # 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 3 print(sys.platform) # 返回操作系統平臺名稱 4 sys.exit(0) # 程序正常退出sys.exit()==exit(0) 5 sys.exit(1) # 程序錯誤退出sys.exit(1)==exit(1) 6 sys.argv # 命令行參數List,第一個元素是程序本身路徑 7 一個文件在命令行被執行的時候,py文件後面所有的內容都會成為sys.argv中的一項 8 C:\Users\admin>python3 E:/Py3Practise/day01/test.py bob jack 9 [‘E:/Py3Practise/day01/test.py‘, ‘bob‘, ‘jack‘] 10 11 事例二 12 import sys 13 user = sys.argv[1] 14 passwd = sys.argv[2] 15 if user == ‘bob‘ and passwd == ‘123‘: 16 print(‘登陸成功‘) 17 else: 18 exit() 19 print(‘登陸成功之後才能執行的邏輯‘) 20 結果 21 C:\Users\admin>python3 E:/Py3Practise/day01/test.py bob 123 22 登陸成功 23 登陸成功之後才能執行的邏輯
序列化
把一個對象拍散,叫序列化
把拍散的內容整合回對象,反序列化
pickle模塊
把一個對象進行序列化操作
1. dumps() 把對象序列化成字節
2. loads() 把字節反序列化成對象
3. dump() 把對象序列化寫入文件
4. load() 把文件中的內容反序列化成對象
1 import pickle 2 class Elephant: 3 def __init__(self,name,weight,height): 4 self.name = name 5 self.weight = weight 6 self.height = height 7 def play(self): 8 print(f‘{self.name}喜歡玩水‘) 9 e = Elephant(‘大象‘,‘185T‘,‘210‘) 10 e.play() 11 bs = pickle.dumps(e) #序列換化 12 print(bs) 13 dx = pickle.loads(bs) #反序列化 14 dx.play() 15 結果 16 大象喜歡玩水 17 b‘\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xa4\xa7\xe8\xb1\xa1q\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00210q\x08ub.‘ 18 大象喜歡玩水 19 20 事例2 21 class Elephant: 22 def __init__(self,name,weight,height): 23 self.name = name 24 self.weight = weight 25 self.height = height 26 def play(self): 27 print(f‘{self.name}喜歡玩水‘) 28 e1 = Elephant(‘大象‘,‘185T‘,‘210‘) 29 e2 = Elephant(‘老虎‘,‘185T‘,‘210‘) 30 #序列化方法一(寫) 31 f = open(‘測試文件.txt‘,mode=‘wb‘) 32 pickle.dump(e1,f) 33 pickle.dump(e2,f) 34 35 #序列化方法二(寫) 36 lst = [e1,e2] 37 pickle.dump(lst,open(‘測試文件.txt‘,mode=‘wb‘)) 38 #dump這個方法是把對象打散寫入到文件,序列化的內容不是給人看的 39 40 #反序列化(讀) 41 lst = pickle.load(open(‘測試文件.txt‘,mode=‘rb‘)) 42 for dx in lst: 43 dx.play() 44 結果 45 大象喜歡玩水 46 老虎喜歡玩水
json模塊
1 import json 2 # 定義字典,稍後寫入json文件 3 dic = {‘name‘:‘洋洋‘,‘age‘:None,‘jobs‘:False} 4 # 字典轉字符 5 s = json.dumps(dic,ensure_ascii=False) # json處理中文的問題 6 print(s) 7 8 # 字符轉字典 9 d = json.loads(‘{"name": "洋洋", "age": null, "jobs": false}‘) 10 print(d[‘name‘]) 11 12 # 寫入test.json文件中 13 with open(‘test.json‘,mode=‘w‘,encoding=‘utf-8‘)as f1: 14 json.dump({‘name‘:‘洋洋‘,‘age‘:None,‘jobs‘:False},f1,ensure_ascii=False) 15 16 # 讀取test.json文件內容 17 with open(‘test.json‘,‘r‘,encoding=‘utf-8‘)as f2: 18 print(json.load(f2)) 19 20 #json文件只能保存一條數據,如果想保存多條數據,需要在列表裏添加數據 21 [ 22 {"name": "洋洋", "age": null, "jobs": false} 23 {"name": "洋洋", "age": null, "jobs": false} 24 ]
python常用模塊二