day 23 模塊2

来源:https://www.cnblogs.com/yanghongtao/archive/2018/12/27/10187296.html
-Advertisement-
Play Games

1.namedtuple 命名元組 -> 類似創建一個類 from collections import namedtuple # 類 p = namedtuple("Point", ["x", "y","z"]) # 對象 p1 = p(10, 20,30) print(p1) print(p1. ...


1.namedtuple     命名元組  -> 類似創建一個類 from collections import namedtuple   # 類 p = namedtuple("Point", ["x", "y","z"]) # 對象 p1 = p(10, 20,30) print(p1)   print(p1.x)  #10 print(p1.y)  #20 2.os模塊      主要是針對操作系統      一般用來操作文件系統    os.makedirs() 可以一次性創建多級目錄    os.rmdir() 刪除指定一個文件夾 import os   #必須要記住.很常用 os.makedirs("baby/安哥拉/特斯拉/黃曉明") # 可以一次性創建多級目錄   os.mkdir("hyf\zxx\lvb") # 上層文件夾必須存在     os.removedirs("baby/安哥拉/特斯拉/黃曉明") # 可以幫我們刪除當前這個目錄級中的所有空文件夾 #需要記住 os.rmdir("baby/baobao/baby/黃曉明") # 指定文件夾刪除   os.system("dir") print(os.popen("dir").read()) # 執行shell腳本或者cmd命令   print(os.getcwd()) #  當前程式運行的文件夾  D:\python_workspace_s18\day23 內置模塊02   os.chdir("baby") # 改變工作目錄   print(os.getcwd()) f = open("../userinfo", mode="r", encoding="utf-8") for line in f:     print(line)     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.dirname()  獲取到文件的文件夾 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'   print(os.path.abspath('userinfo') ) # 把相對路徑改成絕對路徑 print(os.path.split(r"D:\python_workspace_s18\day23 內置模塊02\userinfo")) #將路徑分割成目錄和文件名二元組返回 print(os.path.dirname(r"D:\python_workspace_s18\day23 內置模塊02\userinfo"))  #返回目錄 print(os.path.basename(r"D:\python_workspace_s18\day23 內置模塊02\userinfo"))  #返迴文件名   print(os.path.exists(r"D:\python_workspace_s18\day23 內置模塊02") ) # 存在?如果路徑存在文件夾,返回True;如果不存在,返回Flase 3.sys模塊       主要針對的是我們的python解釋器       sys.path(重點中的重點)   模塊的查找路徑 sys.argv 命令⾏參數List,第⼀個元素是程式本身路徑 sys.exit(n) 退出程式,正常退出時exit(0),錯誤退出 sys.exit(1) sys.version 獲取Python解釋程式的版本信息  sys.path 返回模塊的搜索路徑,初始化時使⽤PYTHONPATH環境變數的值  sys.platform 返回操作系統平臺名稱 import sys # print(sys.platform) print(sys.path)  # 找模塊的. 必須要記住. 模塊的搜索路徑 sys.path.append("D:\\python_workspace_s18\\day21 繼承") 4.序列化      把一個隊形拍散叫序列化      把拍散的內容整整合回對象,叫反序列化 5.pickle(重點)     把一個對象進行序列化操作   1. dumps( ) 把對象序列化成位元組   2.loads()  把位元組反序列化成對象     1.dump( ) 把對象序列化寫入文件   2. load ()  把文件中的內容反序列化成對象 import pickle # class Elephant:     def __init__(self, name, weight, height):         self.name = name         self.weight = weight         self.height = height       def tiaoxi(self):         print(f"{self.name}大象特別喜歡調戲人")   e = Elephant("寶寶", "185T", "175") # e.tiaoxi() # # # 序列化 bs = pickle.dumps(e) # 把對象進行序列化 print(bs)   # bs = b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xae\x9d\xe5\xae\x9dq\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00175q\x08ub.' # 發序列化 dx = pickle.loads(bs) # 發序列化. 得到的是大象 dx.tiaoxi()   e1 = Elephant("寶寶", "185T", "175") e2 = Elephant("寶貝", "120T", "120") f = open("大象", mode="wb") # 這也是序列化 pickle.dump(e1, f) # 沒有s的這個方法是把對象打散寫入到文件, 序列化的內容不是給人看的 pickle.dump(e2, f) # 沒有s的這個方法是把對象打散寫入到文件, 序列化的內容不是給人看的   f = open("大象", mode="rb") while 1:     try:         obj = pickle.load(f)         obj.tiaoxi()     except Exception:         break       e1 = Elephant("寶寶", "185T", "175") e2 = Elephant("寶貝", "120T", "120")   lst = [e1, e2]   pickle.dump(lst, open("大象", mode="wb"))     讀 lst = pickle.load(open("大象", mode="rb")) for dx in lst:     dx.tiaoxi() 6.json(重點中的重點)   json可以認為是python中的字典.有一點點的不一樣:  python: True, False,None  json :  true, false,null 1. dumps( ) 把對象序列化成json   2.loads()  把json反序列化成對象     1.dump( ) 把對象序列化寫入文件   2. load ()  把文件中的內容反序列化成對象 import json   dic = {"baby":None, "hxm":False, "syy":"史楊楊"}   s = json.dumps(dic, ensure_ascii=False) # json處理中文的問題 print(s)   d = json.loads('{"baby": null, "hxm": false, "syy": "史楊楊"}') print(d['baby'])   f = open("baby.json", mode="w", encoding="utf-8") json.dump({"baby":None, "hxm":False, "syy":"史楊楊"}, f, ensure_ascii=False)   f = open("baby.json", mode="r", encoding="utf-8") obj = json.load(f) print(obj)  
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 天氣數據可以從網上下載,這個例子的數據是從http://data.cma.cn/下載而來的。 下載的數據裝在txt文件中。 裡面包含了12年開始北京的月最低和最高溫度。 讀取數據: 將txt中的數據逐行存到列表lines里 lines的每一個元素對應於txt中的一行。然後將每個元素中的不同信息提取出 ...
  • Yaml配置文件 概述 在支持 配置文件的同時,也支持 配置文件. 配置文件中的屬性,可以通過: 通過 註解將屬性值註入 中; 通過 註解將屬性值註入 中. 此處不推薦使用 方式註入屬性,原因有二: 對於較為複雜的數據結構難以設置,諸如 ,`Object`; 不支持對屬性值進行校驗,諸如 ,`@Si ...
  • 今天優化了一下三級菜單的代碼 兩個版本: 一:分幾次迴圈完成: ...
  • Models.py#coding:utf8fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)#實例化app.config["SQLALCHEMY_DATABASE_URI"]="mysql://roo... ...
  • 源碼文件的三種類型: 命令源文件:可以直接運行的程式,可以不編譯而使用命令“go run”啟動、執行。 庫源碼文件 測試源碼文件 面試題:命令源碼文件的用途是什麼,怎樣編寫它? 典型回答: 命令源碼文件是程式的運行入口,是每個可獨立運行的程式必須擁有的。 我們可以通過構建或安裝生成與其對應的可執行文 ...
  • 二叉樹首先要解決構建問題,才能考慮後續的遍歷,這裡貼出通過先序構建二叉樹,同時包含四種二叉樹的遍歷方法(先序,中序,後序,逐層) 第一、定義BinaryTreeNode 類 1 #include <iostream> 2 #include <string> 3 #include <queue> 4 ...
  • 1. 初識面向對象 面向過程: 一切以事務的發展流程為中心. 面向對象: 一切以對象為中心. 一切皆為對象. 具體的某一個事務就是對象 打比方: 大象進冰箱 步驟: 第一步, 開門, 第二步, 裝大象, 第三步, 關門 面向對象:大象, 你進冰箱. 此時主語是大象. 我操縱的是大象. 此時的大象就是 ...
  • 下麵給出這道一臉不可做的題的鬼畜性質: 1)對於一個點來說,其歸屬狀態是確定的:走不到、A黨或B黨 。(黑白格染色) 方便起見,將包含所有不可達的點的極小矩形向外擴展一圈,設為矩形M。 2)矩形M的最外圈上相鄰兩點點到(0,0)的最短曼哈頓距離差值不超過1。 3)矩形M外任意正對於矩形M的點到垂直走 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...