檔案的基本方法
可使用函式open,它位於自動匯入的模組io
中。
# 1.open函式將檔名作為唯一必不可少的引數,返回乙個可讀取的檔案物件
>>
>
open
("a.py"
)'a.py' mode=
'r' encoding=
'cp936'
>
# 2.如果要寫入檔案,必須通過指定模式來顯式地指出這一點
# 3.若不存在該檔案,則會產生如下錯誤
>>
> f=
open
("b.py"
) traceback (most recent call last)
: file ""
, line 1,in
filenotfounderror:
[errno 2
] no such file
or directory:
'b.py'
mode值
描述說明
『r』讀取模式(預設值)
顯式地指定讀取模式的效果與根本不指定模式相同。
『w』寫入模式
能夠寫入檔案,並在檔案不存在時建立它;
在寫入模式下開啟檔案時,原有內容將被刪除,從檔案開頭處開始寫入
『x』獨佔寫入模式
在檔案已存在時引發fileexistserror
異常。
『a』附加模式
如果要在既有檔案末尾繼續寫入,可使用附加模式
『b』二進位制模式(與其他模式結合使用)
如果檔案包含非文字的二進位制資料,如聲音剪輯片段或影象,需使用二進位制模式(如』rb』)來禁用與文字相關的功能。
『t』文字模式(預設值,與其他模式結合使用)
預設模式為』rt』,把檔案視為經過編碼的unicode文字,將自動執行解碼和編碼,且預設使用utf-8編碼。要指定其他編碼和unicode錯誤處理策略,可使用關鍵字引數encoding和errors。
『+』讀寫模式(與其他模式結合使用),既可讀取也可寫入
'r+'和』w+'都有讀寫功能:
『r+』:從頭開始覆蓋原有內容(可能會保留部分)
『w+』:刪除原有內容,重新開始寫入
# 1.'x':獨佔寫入模式
# 1) 在檔案已存在時,引發fileexistserror異常
>>
> f=
open
('a.py'
,'x'
)traceback (most recent call last)
: file ""
, line 1,in
fileexistserror:
[errno 17
] file exists:
'a.py'
# 2)在檔案不存在的時候,正常執行
>>
> f=
open
('b.py'
,'x'
)>>
> f.write(
"test")4
# 返回寫入字串的長度
>>
> f.close(
)# 2.讀寫模式:r+與w+
>>
> f=
open
('b.py'
,'r+'
)>>
> f.write(
"aaa")3
>>
> f.write(
"bbb")3
>>
> f.close(
)#關閉後,才寫入檔案內容:test-> aaabbb
>>
> f=
open
('b.py'
,'r+'
)>>
> f.write(
"cccc"
)#檔案內容:aaabbb -> ccccbb
4>>
> f.close(
)>>
> f=
open
('b.py'
,'w+'
)>>
> f.write(
'aa'
)#檔案內容:ccccbb -> aa
2>>
> f.close(
)
(參見前面的內容)
隨機訪問:
seek(offset[, whence])
:將當前位置(執行讀取或寫入的位置)移到 offset 和whence 指定的地方。
>>
> f =
open
(r'c:\text\somefile.txt'
,'w'
)>>
> f.write(
'01234567890123456789')20
>>
> f.seek(5)
5>>
> f.write(
'hello, world!')13
>>
> f.close(
)>>
> f =
open
(r'c:\text\somefile.txt'
)>>
> f.read(
)'01234hello, world!89'
# 方法 tell()返回當前位於檔案的什麼位置,如下例所示:
window 命令列直譯器cmd:
f:\study\work\code>
type b.txt | python somescript.py |
sort
wordcount: 2 # 輸出結果
#description:
# 1.type somefile.txt:將檔案somefile.txt的內容寫入到標準輸出(sys.stdout)。
# 2.python somescript.py:執行python指令碼somescript。這個指令碼從其標準輸入中讀取,並將結果寫入到標準輸出。
# 3.sort:讀取標準輸入(sys.stdin)中的所有文字,將各行按字母順序排序,並將結果寫入到標準輸出。
管道字元("|"):管道將乙個命令的標準輸出鏈結到下乙個命令的標準輸入。
即:somescript.py從其sys.stdin中讀取資料(這些資料是somefile.txt寫入的),並將結果寫入到其sys.stdout(sort
將從這裡獲取資料)。
[參考文件 ]
Python基礎語法13 檔案讀寫
讀寫檔案 在python中有內建的讀寫檔案的函式。在現代的作業系統中,系統是不允許普通的程式直接訪問我們的磁碟,但是有時候我們需要檔案讀寫的操作,這時候我們就需要傳送乙個請求 給我們的作業系統,作業系統會給我們返回乙個檔案物件,然後,通過 作業系統提供的介面來將資料寫入磁碟或者是從磁碟讀出資料。讀取...
python13檔案 13 Python 檔案
概述 嚴格講,檔案不屬於資料型別。02操作 1 開啟檔案 1 基本語法 file open 檔名 mode 引數mode模式可選引數,分為 r讀 w寫 a追加 r w a後面可接第二個引數,b標書二進位制,f open data.bin rb 2 完整語法格式為 open file,mode r b...
python 物件導向 13 檔案
檔案的作用 將資料長期儲存下來,在需要的時候使用 cpu記憶體 硬碟 文字檔案和二進位制檔案 二進位制檔案 在計算機中要操作檔案的套路非常固定,一共包含三個步驟 開啟檔案 讀 寫檔案 關閉檔案 序號函式 方法 說明01 open 開啟檔案,並且返回檔案操作物件 02read 將檔案內容讀取到記憶體 ...