python專題檔案操作

2021-10-02 08:22:44 字數 3552 閱讀 9040

知識追尋者(inheriting the spirit of open source, spreading technology knowledge;)

open(file, mode=『r』, buffering=none, encoding=none, errors=none, newline=none, closefd=true)

file 可以是給定的文字檔案或者是檔案字串形式的名稱

mode 模式是操作檔案以何種方式開啟,比如讀,寫模式,讀取為二進位制等;

buffering 是快取機制(可選引數),設定為0為關閉快取;設定為1表示行快取,必須是在文字模式下執行;設定值 大於1 表示固定值的塊快取;不給定引數,系統會設定預設快取,通常二進位制檔案是固定大小的塊快取,大小為4096或者8192;

encoding 表示設定編碼或者解碼,預設的編碼解碼是跟隨平台,必須是文字模式下可執行;使用者可以自定義,

errors 可選操作,表示指定如何處理編碼異常;如果設定為ignore,可能會造成資料丟失;

newline 表示對換行的具體操作,比如 『\n』 , 『\r』 , 『\n\r』,必須在文字模式下進行;

closefd 如果設定會false 當檔案關閉時,檔案的描述會一直開啟,造成記憶體洩漏;通常會在open方法前面加with解決此類問題,否則需要呼叫close()方法關閉控制代碼;

基礎模式如下,在不衝突的情況下可以對檔案的模式進行自由組合,比如 wb表示以二進位制檔案形式開啟檔案進行寫操作;

模式含義

t文字模式 (預設)

b二進位制模式

w寫入模式

x建立乙個新的檔案,並且寫入資料

a在已經存在的檔案末尾追加內容

+開啟磁碟檔案對其進行更新操作,可以是讀或者寫

u另起一行模式,已經過時,會引起異常

方法名稱

方法說明

read(size)

讀取檔案,size為可選引數為-1或者省略表示讀取全部內容

readline()

從檔案中讀取一行

readlines()

讀取多行

write(string)

寫入字串到檔案,返回字元數

tell()

返回檔案當前位置

close()

關閉檔案

flush()

手動沖刷快取至底層

在工程目錄下的base目錄資料夾下建立乙個dir資料夾,專門用於儲存檔案;建立乙個zszxz.txt 檔案 內容如下

我以星辰送大海

我以盞杯敬明月

指定檔案路徑path

指定模式r 為讀操作

指定編碼格式為utf-8

呼叫read()方法

path =

"dirs/zszxz.txt"

with

open

(path,

'r', encoding=

'utf-8'

)as file_obj:

content = file_obj.read(

)print

(content.rstrip(

))

輸出結果

我以星辰送大海

我以盞杯敬明月

使用readline()方法會讀取單行,對於整個檔案需要進行多次讀取;

path =

"dirs/zszxz.txt"

with

open

(path,

'r', encoding=

'utf-8'

)as file_obj:

content_1 = file_obj.readline(

)print

(content_1.rstrip())

content_2 = file_obj.readline(

)print

(content_2.rstrip(

))

輸出結果

我以星辰送大海

我以盞杯敬明月

使用readlines()方法返回乙個列表

使用迴圈遍歷讀取

path =

"dirs/zszxz.txt"

with

open

(path,

'r', encoding=

'utf-8'

)as file_obj:

lines = file_obj.readlines(

)for line in lines:

print

(line.rstrip(

))

輸出結果

我以星辰送大海

我以盞杯敬明月

直接對檔案進行迭代,能簡化**,提高效率;

path =

"dirs/zszxz.txt"

with

open

(path,

'r', encoding=

'utf-8'

)as file_obj:

for line in file_obj:

print

(line.rstrip(

))

path 指定檔案路徑

mode 模式為w 表示寫入資料

執行write()方法

返回count為寫如的字元數

寫入全部資料

# -*- coding: utf-8 -*-

path =

"c:\mydata\generator\zszxz.txt"

with

open

(path,

'w',encoding=

'utf-8'

)as file_obj:

count = file_obj.write(

)print

(count)

返回結果如下,說明寫入了36個字元;

36
path 指定檔案路徑

mode 模式為 r表示讀

呼叫readline()方法 表示讀取行

呼叫tell()方法獲取讀取檔案當前位置

path =

"dirs/zszxz.txt"

with

open

(path,

'r', encoding=

'utf-8'

)as file_obj:

line = file_obj.readline(

) position = file_obj.tell(

)print

(position)

print

(line.rstrip(

))

輸出結果

23

我以星辰送大海

python 檔案操作

簡明 python 教程 中的例子,python 執行出錯,用open代替file 可以執行。poem programming is fun when the work is done if you wanna make your work also fun use python f open e ...

python檔案操作

1,將乙個路徑名分解為目錄名和檔名兩部分 a,b os.path.split c 123 456 test.txt print a print b 顯示 c 123 456 test.txt 2,分解檔名的副檔名 a,b os.path.splitext c 123 456 test.txt pri...

Python 檔案操作

1.開啟檔案 如下 f open d test.txt w 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只寫 如果檔案 不存在,則自動建立檔案 a 附加到檔案末尾 r 讀寫 如果需要以二進位制方式開啟檔案,需要在mode後面加上...