Task09 檔案與檔案系統 1天

2021-10-08 23:08:07 字數 3384 閱讀 3649

1.開啟檔案

open

(file

, mode=

'r', buffering=

none

, encoding=

none

, errors=

none

, newline=

none

, closefd=

true

)

常見的mode如下表所示:

開啟模式

執行操作

『r』以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

『w』開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯。即原有內容會被刪除。如果該檔案不存在,建立新檔案。

『x』寫模式,新建乙個檔案,如果該檔案已存在則會報錯。

『a』追加模式,開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

『b』『t』

『+』可讀寫模式(可新增到其它模式中使用)

開啟乙個檔案,並返回檔案物件,如果該檔案無法被開啟,會丟擲oserror。

f =

open

('將進酒.txt'

)print

(f)for each in f:

print

(each)

2.檔案物件方法方法

描述fileobject.close()

用於關閉乙個已開啟的檔案。關閉後的檔案不能再進行讀寫操作, 否則會觸發valueerror錯誤。

fileobject.read([size])

用於從檔案讀取指定的字元數,如果未給定或為負則讀取所有。

fileobject.readline()

讀取整行,包括 「\n」 字元。

fileobject.readlines()

用於讀取所有行(直到結束符 eof)並返回列表,該列表可以由 python 的 for… in … 結構進行處理。

fileobject.tell()

返回檔案的當前位置,即檔案指標當前位置。

fileobject.seek(offset[, whence])

用於移動檔案讀取指標到指定位置。

fileobject.write(str)

用於向檔案中寫入指定字串,返回的是寫入的字元長度。

fileobject.writelines(sequence)

向檔案寫入乙個序列字串列表,如果需要換行則要自己加入每行的換行符\n。

有了os(operation system)模組,我們不需要關心什麼作業系統下使用什麼模組,os模組會幫你選擇正確的模組並呼叫。

方法描述

os.getcwd()

用於返回當前工作目錄。

os.chdir(path)

用於改變當前工作目錄到指定的路徑。

listdir (path=』.』)

返回path指定的資料夾包含的檔案或資料夾的名字的列表。

os.mkdir(path)

建立單層目錄,如果該目錄已存在丟擲異常。

os.makedirs(path)

用於遞迴建立多層目錄,如果該目錄已存在丟擲異常。

os.remove(path)

用於刪除指定路徑的檔案。如果指定的路徑是乙個目錄,將丟擲 oserror。

os.rmdir(path)

用於刪除單層目錄。僅當這資料夾是空的才可以, 否則, 丟擲 oserror。

os.removedirs(path)

遞迴刪除目錄,從子目錄到父目錄逐層嘗試刪除,遇到目錄非空則丟擲異常。

os.rename(src, dst)

方法用於命名檔案或目錄,從 src 到 dst,如果 dst 是乙個存在的目錄, 將丟擲 oserror。

os.system(command)

執行系統的shell命令(將字串轉化成命令)

os.curdir

指代當前目錄(.)

os.pardir

指代上一級目錄(…)

os.sep

輸出作業系統特定的路徑分隔符(win下為\,linux下為/)

os.linesep

當前平台使用的行終止符(win下為\r\n,linux下為\n)

os.name

指代當前使用的作業系統(包括:『mac』,『nt』)

os.path.basename(path)

去掉目錄路徑,單獨返回檔名

os.path.dirname(path)

去掉檔名,單獨返回目錄路徑

os.path.join(path1[, path2[, …]])

將 path1,path2 各部分組合成乙個路徑名

os.path.split(path)

分割檔名與路徑,返回(f_path,f_name)元組。如果完全使用目錄,它會將最後乙個目錄作為檔名分離,且不會判斷檔案或者目錄是否存在。

os.path.splitext(path)

分離檔名與副檔名,返回(f_path,f_name)元組。

os.path.getsize(file)

返回指定檔案大小,單位是位元組。

os.path.getatime(file)

返回指定檔案最近的訪問時間

os.path.getctime(file)

返回指定檔案的建立時間

os.path.getmtime(file)

返回指定檔案的最新的修改時間浮點型秒數,可用time模組的gmtime()或localtime()函式換算

os.path.exists(path)

判斷指定路徑(目錄或檔案)是否存在

os.path.isabs(path)

判斷指定路徑是否為絕對路徑

os.path.isdir(path)

判斷指定路徑是否存在且是乙個目錄

os.path.isfile(path)

判斷指定路徑是否存在且是乙個檔案

os.path.islink(path)

判斷指定路徑是否存在且是乙個符號鏈結

os.path.ismount(path)

判斷指定路徑是否存在且是乙個懸掛點

os.path.samefile(path1,path2)

判斷path1和path2兩個路徑是否指向同乙個檔案

python 的 pickle 模組實現了基本的資料序列和反序列化。

pickle.dump(obj, file, [,protocol])obj物件序列化存入已經開啟的file中。

Task09 檔案與檔案系統

開啟檔案 1.open file,mode r buffering none,encoding none,errors none,newline none,closefd true file 必需,檔案路徑 相對或者絕對路徑 mode 可選,檔案開啟模式 buffering 設定緩衝 encodin...

Task09 檔案與檔案系統

開啟中文字元的文件時,會出現亂碼,python自帶的開啟檔案是否可以指定文字編碼?還是只能用相關函式?答 python自帶的開啟檔案可以指定文字編碼,在open 函式中設定引數encoding為utf8即可。編寫程式查詢最長的單詞 輸入文件 res test.txt 題目說明 input file ...

Task 09 檔案系統。

with語句的工作原理 enter exit 這兩個方法 with後面返回的物件要求必須有這兩個方法,而檔案物件f剛好是有這兩個方法的。object.enter self 進入與此物件相關的執行時上下文。with語句將將此方法的返回值繫結到語句的as子句中指定的目標 如果有設定的話 object.e...