知識追尋者(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(
(content.rstrip(
))
使用readline()方法會讀取單行,對於整個檔案需要進行多次讀取;我以星辰送大海
我以盞杯敬明月
輸出結果path =
"dirs/zszxz.txt"
with
open
(path,
'r', encoding=
'utf-8'
)as file_obj:
content_1 = file_obj.readline(
(content_1.rstrip())
content_2 = file_obj.readline(
(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:
(line.rstrip(
))
直接對檔案進行迭代,能簡化**,提高效率;我以星辰送大海
我以盞杯敬明月
path 指定檔案路徑path =
"dirs/zszxz.txt"
with
open
(path,
'r', encoding=
'utf-8'
)as file_obj:
for line in file_obj:
(line.rstrip(
))
mode 模式為w 表示寫入資料
執行write()方法
返回count為寫如的字元數
寫入全部資料
返回結果如下,說明寫入了36個字元;# -*- coding: utf-8 -*-
path =
"c:\mydata\generator\zszxz.txt"
with
open
(path,
'w',encoding=
'utf-8'
)as file_obj:
count = file_obj.write(
(count)
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(
(position)
(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後面加上...