python 檔案的輸入輸出

2021-10-02 02:02:30 字數 1951 閱讀 3533

一、檔案內建函式open()和 file()

作為開啟檔案之門的"鑰匙", 內建函式 open() [以及 file() ]提供了初始化輸入/輸出(i/o)

操作的通用介面。

open() 內建函式成功開啟檔案後時候會返回乙個檔案物件, 否則引發乙個錯誤. 當操作失敗, python 會產生乙個 ioerror 異常。

1、 open() 的基本語法是:

file_object =

open

(file_name, access_mode=

'r', buffering=-1

)

引數解釋:

引數含義

file_name

要開啟的檔案名字的字串, 它可以是相對路徑或者絕對路徑.

access_mode

也是乙個字串, 代表檔案開啟的模式

(可選引數)buffering

訪問檔案所採用的緩衝方式. 其中 0 表示不緩衝, 1表示只緩衝一行資料,

常用檔案物件訪問模式:

檔案模式操作r

以讀方式開啟(必須存在)

w以寫方式開啟 (必要時清空)

a以追加模式開啟 (從 eof 開始, 必要時建立新檔案)

r+、w+、a+

以讀寫模式開啟

2、file()

open() 和 file() 函式具有相同的功能, 可以任意替換。

二、檔案內建的方法

1、輸入

read() :方法用來直接讀取位元組到字串中, 最多讀取給定數目個位元組. 如果沒有給定 size

引數(預設值為 -1)或者 size 值為負, 檔案將被讀取直至末尾。

readline() :方法讀取開啟檔案的一行(讀取下個行結束符之前的所有位元組). 然後整行,包括行結束符,作為字串返回. 和 read() 相同, 它也有乙個可選的 size 引數, 預設為 -1, 代表讀至行結束符. 如果提供了該引數, 那麼在超過 size 個位元組後會返回不完整的行。

readlines() :

讀取所有(剩餘的)行然後把它們作為乙個字串列表返回。

2、輸出

write() :把含有文字資料或二進位制資料塊的字串寫入到檔案中去。

writelines() :方法是針對列表的操作, 它接受乙個字串列表作為引數 , 將它們寫入檔案 . 行結束符並不會被自動加入 , 所以如果需要的話 , 你必須在呼叫writelines()前給每行結尾加上行結束符.

3、移動seek()

在檔案中移動檔案指標到不同的位置。

位置的預設值為 0 , 代表從檔案開頭算起(即絕對偏移量), 1 代表從當前位置算起, 2 代表從檔案末尾算起.

seek(-12

,1)#從當前位置忘前移動12位

f.tell(

)#檢視當前位置

三、檔案系統

對檔案系統的訪問大多通過 python 的 os 模組實現。除了對程序和程序執行環境進行管理外, os 模組還負責處理大部分的檔案系統操作, 應用程式開發人員可能要經常用到這些. 這些功能包括刪除/重新命名檔案, 遍歷目錄樹, 以及管理檔案訪問許可權等。

os 模組的檔案/目錄訪問函式 :

函式 :檔案處理

描述remove()

刪除檔案

rename()

重新命名檔案

utime()

更新時間戳

chdir()

改變當前工作目錄

chroot()

改變當前程序的根目錄

mkdir()/makedirs()

建立目錄/建立多層目錄

rmdir()/removedirs()

刪除目錄/刪除多層目錄

access()

檢驗許可權模式

chmod()

改變許可權模式

umask()

設定預設許可權模式

Python檔案輸入輸出

本文以.txt檔案為例,說明python從.txt檔案中讀取內容和向.txt檔案寫入內容的方法。a.txt檔案內容 犬吠水聲中,桃花帶雨濃。樹深時見鹿,溪午不聞鐘。野竹分青靄,飛泉掛碧峰。無人知所去,愁倚兩三松。讀取檔案 open filename,mode open返回乙個檔案物件。第乙個引數是乙...

python 檔案輸入輸出

我們開啟乙個檔案,並使用乙個物件來表示該檔案 f open 檔名,模式 f open f.txt 文字形式 唯讀模式 預設值 f open f.txt rt 文字形式 唯讀模式 同預設值 f open f.txt w 文字形式 覆蓋寫模式 f open f.txt a 文字形式 追加寫模式 讀檔案 ...

Python 檔案和輸入輸出

1 內建函式open 的基本語法 file object open file name,access mode r buffering 1 buffering代表訪問檔案所使用的緩衝方式,其中0代表不緩衝,1表示只緩衝一行資料,任何其他大於1的值代表使用給定值作為緩衝區大小。不提供該引數或者給定負值...