Python學習week7 檔案操作

2022-08-23 19:36:09 字數 2944 閱讀 7963

# 檔案操作命令

建立並開啟乙個檔案test,然後關閉;

開啟乙個檔案,返回乙個檔案物件(流物件)和檔案描述符。

開啟檔案失敗,則返回異常;

touch test   #

linux

#new-item "new test.txt" -type file #powershell

f = open("

test

") #

file物件

#f.close() #

關閉檔案

# open引數詳解

①:file 開啟或者要建立的檔名,如果不指定路徑,預設是當前路徑或者是檔案描述符(整型)

②:mode模式:檔案開啟的模式。預設以文字唯讀mode=rt的模式開啟已經存在的檔案;

③:檔案指標:檔案指標,指向當前位元組位置;

# f.seek(offset,whence=0,/)  f 為檔案物件,改變檔案流的位置;offset表示相對於whence偏移了多少位元組;

# whence 有三個值可選,分別表示不同的相對位置

# 文字模式下:支援從開頭向後偏移的。whence=1 表示從當前位置開始偏移,但是offset 只能為0,相當於原地不動。whence=2 表示從文字末尾開始偏移,offset 只能為0,seek 是按照位元組偏移的;

# 1和2,在文字模式下,無法移動;1和2只有在位元組模式下才能移動游標;

# 二進位制模式下:預設whence=0,從檔案開頭開始,offset只能是正整數。whence=1,offset可正可負。whence=2,offset可正可負。二進位制模式支援任意起點的偏移,向後seek可以超界,但是向前的seek不可以超界,否則丟擲異常;

# 注意:seek移動,會自動呼叫flush;

④:緩衝區

# buffer緩衝區:緩衝區是乙個記憶體空間,一般來說是乙個fifo佇列,到緩衝區滿了或者達到閾值的時候,資料才會flush 到磁碟中。flush() 將緩衝區資料寫入磁碟close()關閉前會呼叫flush();

none 表示使用預設編碼,依賴作業系統。

windows預設是gbk(cp936)。

linux預設是utf-8

⑥:其他引數

errors:編碼錯誤將**獲,none和strict表示有編碼錯誤將丟擲valueerror錯誤,ignore表示忽略。

newline:

文字模式中,換行的轉換;

可以為none,「空串」,'\r','\n','\r\n'

讀取時 none表示:'\r','\n','\r\n'都被轉換為"\n";

』』表示不會自動轉換通用換行符;

其它合法字元表示換行符就是指定字元,就會按照指定字元分行 寫 時,none表示』\n』都會被替換為系統預設行分隔符os.linesep;』\n』或』』表示』\n』不替換;其它合法字元表示』\n』會被 替換為指定的字元。

closefd 關閉檔案描述符,true表示關閉它。false會在檔案關閉後保持這個描述符。fileobj.fileno()檢視;

# fileobj.read(size=-1, /)

size表示讀取的多少個字元或位元組;負數或者none表示讀取到eof;

# readline(size=-1)

一行行讀取檔案內容。size設定一次能讀取行內幾個字元或位元組;

# readlines(hint=-1)

讀取所有行的列表。指定hint則返回指定的行數;

# fileobj.write(s, /)

把字串s寫入到檔案中並返回字元的個數。

writelines(lines),將字串列表寫入檔案;

flush 並關閉檔案物件。

檔案已經關閉,再次關閉沒有任何 效果;

# 對於乙個開啟的檔案控制代碼,需要使用完後要關閉,不然就會浪費計算機資源;而關閉的方法:

①:手動關閉,f.close()

②:使用with...as語法,自動關閉;

with open('

a.txt

',encoding='

utf-8

') as f:

line=f.read()

print

(line)

##############################

f=open('

a.txt

',encoding='

utf-8')

with f:

g=f.readline()

print(g)

# 上下文管理的語句塊並不會開啟新的作用域;

# with語句塊執行完畢,會自動關閉檔案物件;

注意:對於類似於檔案物件的io物件,一般來說都需要在不使用的時候關閉、登出,以釋放資源。 io被開啟的時候,會獲得乙個檔案描述符。計算機資源是有限的,所以作業系統都會做限制。就是為了保護計算機 的資源不要被完全耗盡,計算資源是共享的,不是獨佔的。 一般情況下,除非特別明確的知道資源情況,否則不要提高資源的限制值來解決問題。

Python學習week7 對映

對映 通過使用者輸入的字串呼叫物件的屬性和方法。呼叫時使用物件真實的方法名和屬性名,attr 的引數使用的是使用者輸入的字串,由此完成使用者輸入的字串和物件實際屬性和方法的連線。hasattr obj,name str 判斷物件obj裡面是否有對應的name str字串的方法 getattr obj...

week7 學習寫技術交底書的所得

第七周學習過程 術交底書過程的所學所得 撰寫技術交底書的目的是幫助專利 人理解專利和完成專利申請書。所以在其中我們要向 人交代專利的核心技術 價值和想要保護的方面。技術交底書大致分為這麼 5 個部分 1.發明名稱和所屬技術領域 發明名稱應該直接點出發明中應用的核心技術和發明的型別 是創新或是優化等等...

Python學習筆記7 檔案與檔案系統

使用python內建的open 函式開啟檔案 open file,mode r buffering 1,encoding none,errors none,newline none,closefd true,opener none 引數 解釋file 必需,檔案路徑 相對或者絕對路徑 mode 可選...