python常用的標準庫模組
阿新 • • 發佈:2019-01-07
https://www.cnblogs.com/yuanchenqi/articles/5732581.html
源部落格–Yuan先生
環境變數
# 臨時新增環境變數
import sys
sys.path.append()
#如果需要永久修改
#去修改系統的環境變數
# __name__ 呼叫 __main__,如果是被呼叫則顯示檔名
# __file__ 檔名 pycharm 會變成絕對路徑
# pycharm ,但是終端會報錯
os.path.dirname(__file__) # 返回此檔案所在目錄,不包含檔名,所在目錄
os.path.dirname(os. path.dirname(__file__)) # 所在目錄的上層目錄
# 終端
os.path.dirname(os.path.abspath(__file__)) # 返回此檔案所在目錄,不包含檔名,所在目錄
os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 所在目錄的上層目錄
os模組
os.getcwd() #獲取當前工作目錄,即當前python指令碼工作的目錄路徑
os.chdir("dirname") #改變當前指令碼工作目錄;相當於shell下cd
os.curdir # 返回當前目錄: ('.')
os.pardir # 獲取當前目錄的父目錄字串名:('..')
os.makedirs('dirname1/dirname2') # 可生成多層遞迴目錄
os.removedirs('dirname1') # 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推
os.mkdir('dirname') # 生成單級目錄;相當於shell中mkdir dirname
os.rmdir('dirname') # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir('dirname') # 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印
os.remove() # 刪除一個檔案
os.rename("oldname","newname") # 重新命名檔案/目錄
os.stat('path/filename') # 獲取檔案/目錄資訊
os.sep # 輸出作業系統特定的路徑分隔符,win下為"\\",Linux下為"/"
os.linesep # 輸出當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n"
os.pathsep # 輸出用於分割檔案路徑的字串 win下為;,Linux下為:
os.name # 輸出字串指示當前使用平臺。win->'nt'; Linux->'posix'
os.system("bash command") # 執行shell命令,直接顯示
os.environ # 獲取系統環境變數
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.exists(path) # 如果path存在,返回True;如果path不存在,返回False
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所指向的檔案或者目錄的最後修改時間
sys模組
"""
sys.argv 命令列引數List,第一個元素是程式本身路徑
sys.exit(n) 退出程式,正常退出時exit(0)
sys.version 獲取Python解釋程式的版本資訊
sys.maxint 最大的Int值
sys.path 返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform 返回作業系統平臺名稱
"""
# 進度條
import sys,time
for i in range(10):
sys.stdout.write('#') # 會有快取
time.sleep(1)
sys.stdout.flush() #重新整理快取,會把快取
# 終端列印##########,一秒一個。
json
import json
dic={'name':'alvin','age':23,'sex':'male'}
print(type(dic))#<class 'dict'>
j=json.dumps(dic)
print(type(j))#<class 'str'>
f=open('序列化物件','w')
f.write(j) #-------------------等價於json.dump(dic,f)
f.close()
#-----------------------------反序列化<br>
import json
f=open('序列化物件')
data=json.loads(f.read())# 等價於data=json.load(f)
# ---------------------------------------------------------------------
import json
#dct="{'1':111}"#json 不認單引號
#dct=str({"1":111})#報錯,因為生成的資料還是單引號:{'one': 1}
#json 字串必須雙引號
dct='{"1":"111"}'
print(json.loads(dct))
#conclusion:
#無論資料是怎樣建立的,只要滿足json格式,就可以json.loads出來,不一定非要dumps的資料才能loads
# dump dumps load loads
# dump(dic,f檔案物件) 直接寫入
# dump load 對於檔案處理的簡化操作
pickle
import pickle
dic={'name':'alvin','age':23,'sex':'male'}
print(type(dic))#<class 'dict'>
j=pickle.dumps(dic)
print(type(j))#<class 'bytes'>
f=open('序列化物件_pickle','wb')#注意是w是寫入str,wb是寫入bytes,j是'bytes'
f.write(j) #-------------------等價於pickle.dump(dic,f)
f.close()
#-------------------------反序列化
import pickle
f=open('序列化物件_pickle','rb')
data=pickle.loads(f.read())# 等價於data=pickle.load(f)
print(data['age'])
shelve
#shelve模組比pickle模組簡單,只有一個open函式,返回類似字典的物件,可讀可寫;key必須為字串,而值可以是python所支援的資料型別
import shelve
f = shelve.open(r'shelve.txt')
# f['stu1_info']={'name':'alex','age':'18'}
# f['stu2_info']={'name':'alvin','age':'20'}
# f['school_info']={'website':'oldboyedu.com','city':'beijing'}
#
#
# f.close()
print(f.get('stu_info')['age'])