python进阶-第二季第一章
第八章:文件操作(IO)技術
116.寫入文件,文件底層關系
一:簡介
1.一個完整的程序一般都包括存儲和讀取,如果沒有執行實際的存儲python執行完操作數據就消失了。實際開發中我們經常需要從外部存儲介質(硬盤,光盤,U盤等)讀取數據或者將程序產生的數據存儲到文件中實現“持久化”保存。
2.很多文件系統是將數據存儲數據庫中,數據其實也是基于文件形式存儲的
3.遠程服務器讀取也稱為IO,數據庫讀取文件也是IO(IO為輸入和輸出技術)
二.文本文件和二進制文件
按照文件數據組織形式。我們把文件分為文本文件和二進制文件兩大類。
1.文本文件:文本文件是普通的‘字符’文本,python默認unicode字符集(兩個字節表示一個字符,最多可以表示:65536個字節),可以使用記事本程序打開。但是像word編輯的文檔將不是文本文件。?
2.二進制文件:二進制的內容把數據的‘字節‘’進行儲存,無法用記事本打開。必須使用專業的文件解碼常見的有:MP4,MP3,jpg圖片,doc文檔等。
三.文件操作相關概述
?
四.創建文件對象open()
1.open函數用于創建文件對象,基本語法:open(文件名【,打開方式】)
?如果只是文件名,代表當前目錄下的文件。文件名可以錄入全路徑,例如:D:\a\b.txt?
為了減少“\”的輸入可以使用原始字符串:r“d:\b.txt”?
例如:f=open(r"b.txt","a")? ? 文本文件
f=open(r"b.jpg","ba")? 二進制文件
2.打開方式有以下幾種:
?
3.文本文件和二進制文件對象的創建
如果我們沒有增加模式“b”,則默認的創建時文本文件對象,處理的基本單元是“字符”。
如果是二進制模式“b”,則創建的是二進制模式,處理的基本單元是“字節”
4.python代碼寫入硬盤圖解(os:操作系統),處理完數據一定要關閉,否則浪費系統資源。
如下代碼:
#coding:utf-8#創建-寫入-關閉
f= open(r"a.txt","a" )
s = 'aa上啊'
f.write(s)
f.close()
4.write()/writelines()寫入數據
write(a)是把字符a寫入到文件中?
writelines(b)是把字符串列表寫入文件中,不添加換行符
例如:
?
?117.編碼知識,中文亂碼問題解決
繪圖軟件:processon
?1 .常用編碼介紹
2.中文亂碼問題
windows操作系統的默認編碼是GBK,linux的默認操作編碼是UTF-8
如果用的Windows系統默認gbk編碼,可以再寫的時候加入:encoding=“utf-8” 例如:
#coding:utf-8#創建-寫入-關閉
f= open(r"a.txt","a",encoding='utf-8' )
s = 'aa上啊'
f.write(s)
f.close()
118.關閉流要點1_try異常管理
1.close()關閉文件流
由于文件底層是由操作系統控制,所以我們打開文件時必須顯示調用close()關閉文件對象。當調用close()方法時,首先會把緩沖區數據寫入文件(也可直接調用flush()方法)在關閉文件,釋放文件對象。
2.為了確保打開文件對象正常關閉,一般結合異常機制的finally或with關鍵字實現,無論何種情況都能關閉打開的文件對象
3.操作
4.python所有的標準異常類:
| BaseException | 所有異常的基類 |
| SystemExit | 解釋器請求退出 |
| KeyboardInterrupt | 用戶中斷執行(通常是輸入^C) |
| Exception | 常規錯誤的基類 |
| StopIteration | 迭代器沒有更多的值 |
| GeneratorExit | 生成器(generator)發生異常來通知退出 |
| SystemExit | Python 解釋器請求退出 |
| StandardError | 所有的內建標準異常的基類 |
| ArithmeticError | 所有數值計算錯誤的基類 |
| FloatingPointError | 浮點計算錯誤 |
| OverflowError | 數值運算超出最大限制 |
| ZeroDivisionError | 除(或取模)零 (所有數據類型) |
| AssertionError | 斷言語句失敗 |
| AttributeError | 對象沒有這個屬性 |
| EOFError | 沒有內建輸入,到達EOF 標記 |
| EnvironmentError | 操作系統錯誤的基類 |
| IOError | 輸入/輸出操作失敗 |
| OSError | 操作系統錯誤 |
| WindowsError | 系統調用失敗 |
| ImportError | 導入模塊/對象失敗 |
| KeyboardInterrupt | 用戶中斷執行(通常是輸入^C) |
| LookupError | 無效數據查詢的基類 |
| IndexError | 序列中沒有沒有此索引(index) |
| KeyError | 映射中沒有這個鍵 |
| MemoryError | 內存溢出錯誤(對于Python 解釋器不是致命的) |
| NameError | 未聲明/初始化對象 (沒有屬性) |
| UnboundLocalError | 訪問未初始化的本地變量 |
| ReferenceError | 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象 |
| RuntimeError | 一般的運行時錯誤 |
| NotImplementedError | 尚未實現的方法 |
| SyntaxError | Python 語法錯誤 |
| IndentationError | 縮進錯誤 |
| TabError | Tab 和空格混用 |
| SystemError | 一般的解釋器系統錯誤 |
| TypeError | 對類型無效的操作 |
| ValueError | 傳入無效的參數 |
| UnicodeError | Unicode 相關的錯誤 |
| UnicodeDecodeError | Unicode 解碼時的錯誤 |
| UnicodeEncodeError | Unicode 編碼時錯誤 |
| UnicodeTranslateError | Unicode 轉換時錯誤 |
| Warning | 警告的基類 |
| DeprecationWarning | 關于被棄用的特征的警告 |
| FutureWarning | 關于構造將來語義會有改變的警告 |
| OverflowWarning | 舊的關于自動提升為長整型(long)的警告 |
| PendingDeprecationWarning | 關于特性將會被廢棄的警告 |
| RuntimeWarning | 可疑的運行時行為(runtime behavior)的警告 |
| SyntaxWarning | 可疑的語法的警告 |
| UserWarning | 用戶代碼生成的警告 |
?
119.關閉流要點with上下文管理1.with語句(上下文管理)
with關鍵字,可以自動管理上下文資源,不論什么原因跳出with塊,都能確保文件正確關閉,并且可以在代碼執行完畢之后自動還原進入代碼塊時的現場。
2.操作:
open () as f 打開一個文件作為一個f對象來引用。
120.文本文件的讀取
一.文件的讀取有以下三個方法:
1.read([size]):從文件中讀取size個字符,并作為結果返回。如果沒有size參數,則讀取整個文件。讀取到文件末尾,會返回空字符串。
2.readline():讀取一行內容作為返回結果。讀取到文件末尾,會返回空字符串。
3.readlines():文本文件中,每一行作為一個字符串存入列表中,返回該列表
?
轉載于:https://www.cnblogs.com/jhnnbb/p/11272811.html
總結
以上是生活随笔為你收集整理的python进阶-第二季第一章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点击小图查看原图
- 下一篇: docker基础维护命令