python 經常 使用 模塊 欄目 Python 简体版
原文   原文鏈接

namedtuplepython

命名元組 ->相似建立了一個類shell

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操做系統交互的模塊json

 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模塊bash

複製代碼
 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()  把文件中的內容反序列化成對象spa

複製代碼
 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 ]
相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息