今日學習內容總結2.1
今日學習內容總結
os模組
os模組提供了多數作業系統的功能介面函式。當os模組被匯入後,它會自適應於不同的作業系統平臺,根據不同的平臺進行相應的操作,在python程式設計時,經常和檔案、目錄打交道,這時就離不了os模組。
os模組常用指令
1.建立目錄
import os os.mkdir(r'a') # 使用相對路徑 在當前執行檔案所在的路徑下建立一個aaa資料夾 os.mkdir(r'b/c') # mkdir只能建立單級目錄 os.makedirs(r'c') # makedirs可以建立單級目錄 os.makedirs(r'b/c/d') # makedirs支援建立多級目錄
2.刪除目錄
import os
os.rmdir(r'a') # 可以刪除單級目錄
os.rmdir(r'b') # 只能刪空的單級目錄
os.removedirs(r'c') # 可以刪除單級目錄
os.removedirs(r'C:\Users\Administrator\Desktop\Typora\day15\day15\b\c\d') # 刪除目錄之後如果外層的目錄也是空的則繼續刪除
3.檢視檔名稱
import os print(os.listdir()) # 檢視當前路徑下的檔名 print(os.listdir(r'')) # 檢視指定路徑下所有的檔案和目錄名
4.刪除,重新命名檔案
import os
os.remove(r'a.txt') # 刪除指定檔案
os.rename(r'a.txt', r'b.txt') # 重新命名指定檔案
5.獲取路徑,切換路徑
import os
print(os.getcwd()) # 獲取當前目錄所在路徑
os.chdir(r'/xiazai') # 切換到指定路徑
print(os.getcwd()) # 列印當前所在路徑
6.軟體開發目錄規範,啟動指令碼相容性操作
import os os.path.dirname(__file__) # 動態獲取當前執行檔案所在的絕對路徑 print(os.path.dirname(__file__)) # D:\PycharmProjects\test os.path.dirname(os.path.dirname(__file__)) # 每巢狀一層就是往上切換一層 print(os.path.abspath(__file__)) # 動態獲取當前執行檔案自身的路徑 D:\PycharmProjects\test\test1.py
7.判斷檔案是否存在
import os
print(os.path.exists(r'test1.py')) # True 判斷所給的路徑是否存在
print(os.path.exists(r'xiazai')) # False
print(os.path.isdir(r'D:\PycharmProjects\test')) # True 判斷路徑是否是一個資料夾
print(os.path.isdir(r'main.py')) # False 判斷路徑是否是一個資料夾
print(os.path.isfile(r'test.py')) # False 判斷路徑是否是一個檔案
print(os.path.isfile(r'test1.py')) # True 判斷路徑是否是一個檔案
8.路徑拼接
import os
a = 'test3'
b = 'work'
print(a + '/' + b) # test3/work 路徑分隔符在不同的系統下是不一樣的 使用加號的話相容性極差
res = os.path.join(a, b) # 能夠自動識別當前作業系統的分隔符
print(res) # test3\work
9.獲取檔案大小
import os
print(os.path.getsize(r'main.py')) # 544bytes
print(os.path.getsize(r'a.txt')) # 21bytes
sys模組
sys模組提供對直譯器使用或維護的一些變數的訪問,以及與直譯器強烈互動的函式。它始終可用。sys模組包括了一組非常實用的服務,內含很多函式方法和變數,用來處理Python執行時配置以及資源,從而可以與前當程式之外的系統環境互動,如:python直譯器。
常用方法:
import sys
# 列舉當前執行檔案所在的sys
print(sys.path)
# 獲取直譯器版本資訊
print(sys.version)
# 獲取平臺資訊
print(sys.platform) # win32
# 自定義命令列操作
print(sys.argv) # ['D:/PycharmProjects/test/test1.py']
cmd終端可以使用windows+r並輸入cmd喚起,也可以在pycharm直接使用快捷方式Terminal,模擬cmd並自動切換到當前執行檔案所在的路徑下。
json模組
json是一種輕量級的資料交換格式,主要用於跨語言傳輸資料。同時也易於機器解析和生成。也就是說,Json是用來進行語言之間的資料交換的,它可以在任意語言之間進行。Pyhton中的json源自於JavaScript。
jason格式資料本質屬於字串型別。
雙引號是json格式資料獨有的標誌符號:
import json
a = {'username':'jason','pwd':666}
print(a, type(a)) # {'username': 'jason', 'pwd': 666} <class 'dict'>
res = json.dumps(a)
print(res, type(res)) # {"username": "jason", "pwd": 666} <class 'str'>
print(str(a),type(str(a))) # {'username': 'jason', 'pwd': 666} <class 'str'>
# 不難看出,將a轉換成json資料結構後,內容為字串,並且是雙引號的形式。
簡單資料型別處理。
json模組可以直接處理簡單資料型別。json.dumps()方法返回一個str物件,編碼過程中會存在從python原始型別向json型別的轉化過程,具體的轉化對照如下:
python | jsom |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
json.dumps()是把python物件轉換成json物件的一個過程,生成的是字串。而json.loads()就是將json格式字串轉換成對應的資料型別:
import json
a = {'username': 'jason', 'pwd': 666}
res = json.dumps(a)
e_str = res.encode('utf8')
j_str = e_str.decode('utf8')
print(j_str, type(j_str)) # {"username": "jason", "pwd": 666} <class 'str'>
res1 = json.loads(j_str)
print(res1, type(res1)) # {'username': 'jason', 'pwd': 666} <class 'dict'>
pickle模組
因為它不支援跨語言傳輸 只能識別python程式碼
subprocess模組
這個模組可以實現遠端操作其他計算機的功能,動態獲取命令執行並返回結果。
import subprocess
# ls在終端的意思就是檢視當前路徑下所有的檔名稱
res = subprocess.Popen('ls',
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
print('stdout',res.stdout.read().decode('utf8')) # 獲取正確命令執行之後的結果
print('stderr',res.stderr.read().decode('utf8')) # 獲取錯誤命令執行之後的結果