import os 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.system("bash command") # 運行行shell命令,直接顯示 os.popen("bash command).read()") # 運行行shell命令,獲取執行行結果 os.getcwd() # 獲取當前工做目錄,即當前python腳本工做的目錄路路徑 os.chdir("dirname") # 改變當前腳本工做目錄;至關於shell下cd # os.path
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所指向的文件或者⽬目錄的最後修改時間 os.path.getsize(path) # 返回path的大小 # 特殊屬性: os.sep 輸出操做系統特定的路路徑分隔符,win下爲"\\",Linux下爲"/" os.linesep # 輸出當前平臺使用的行行終止符,win下爲"\r\n",Linux下爲"\n" os.pathsep # 輸出用於分割文件路徑的字符串 win下爲;,Linux下爲: os.name # 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'
import os os.makedirs("a/b/c") # 能夠一次性建立多個目錄 os.makedirs("a/d/f") os.mkdir('a/b') # 上層文件夾必須存在 os.removedirs('a/b/c') # 能夠幫咱們刪除當前這個目錄級中全部空文件夾 os.rmdir('a/d/f') # 指定文件夾刪除 os.system('dir') # 運行shell命令,獲取執行結果(中文有可能會亂碼,解決辦法,運行下一個) print(os.popen('dir').read()) # 執行shell腳本後者cmd命令 print(os.getcwd()) # 當前程序運行的文件夾 os.chdir('a') # 改變工做目錄 print(os.getcwd())
stat 結構: st_mode: inode 保護模式 st_ino: inode 節點號。 st_dev: inode 駐留的設備。 st_nlink: inode 的連接數。 st_uid: 全部者的用戶ID。 st_gid: 全部者的組ID。 st_size: 普通文件以字節爲單位的大小;包含等待某些特殊文件的數據。 st_atime: 上次訪問的時間。 st_mtime: 最後一次修改的時間。 st_ctime: 由操做系統報告的"ctime"。在某些系統上(如Unix)是最新的元數據更更改的時間,在 其它系統上(如Windows)是建立時間(詳細信息參見平臺的文檔)。
import sys # print(sys.platform) print(sys.path) # 找模塊的, 必需要記住,模塊的搜索路徑 sys.path.append("F:\\python_workspace_hxt\\day21 繼承") import master master.eat()
import sys sys.argv # 命令行參數List,第一個元素是程序自己路徑 sys.exit(n) # 退出程序,正常退出時exit(0),錯誤退出sys.exit(1) sys.version # 獲取Python解釋程序的版本信息 sys.path # 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 sys.platform # 返回操做系統平臺名稱
import pickle class Elephant: def __init__(self,name,weight,height): self.name = name self.weight = weight self.height = height def play(self): print(f"{self.name}大象特別喜歡吃香蕉") e = Elephant('懶懶','1023T','176') # # e.play() # 序列化 ba = pickle.dumps(e) # 把對象進行序列化 print(ba) bs = b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe6\x87\x92\xe6\x87\x92q\x04X\x06\x00\x00\x00weightq\x05X\x05\x00\x00\x001023Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00176q\x08ub.' # 反序列化 dx = pickle.loads(bs) # 反序列化,獲得的是大象 dx.play()
e1 = Elephant('懶懶','1023T','176') e2 = Elephant('舟舟','789T','189') f = open('大象',mode='wb') # 這也是序列化 pickle.dump(e1,f) # 沒有s的這個方法是把對象打散寫入到文件,序列化的內容不是給人看的,是給機器看的 pickle.dump(e2,f) f = open('大象',mode='rb') while 1: try: obj = pickle.load(f) obj.play() except Exception: break ------2---------- e1 = Elephant('懶懶','1023T','176') e2 = Elephant('舟舟','789T','189') lst = [e1,e2] pickle.dump(lst,open('大象',mode='wb')) # 讀 lst = pickle.load(open('大象',mode='rb')) for dx in lst: dx.play()
import json dic = {'baby':None,'hb':False,'hut':'hutong'} s = json.dumps(dic,ensure_ascii=False) # json 處理中文的問題 print(s) # {"baby": null, "hb": false, "hut": "hutong"} # 讀 d = json.loads('{"baby": null, "hb": false, "hut": "hutong"}') print(d['baby'])
# 寫 f = open('baby.json',mode='w',encoding='utf-8') json.dump({'baby':None,'hb':False,'hut':'hutong'},f,ensure_ascii=False) # 讀 f = open('baby.json',mode='r',encoding='utf-8') obj = json.load(f) print(obj)