在實際操作中,我們經常會讀取檔案,這個時候python為我們提供了乙個open()的方法,供我們讀取檔案,通過help(open),我們可以獲取open的方法
f.close()關閉讀取
f.read(size=-1)讀取檔案size個字元,但未給size賦值或者賦值為負數時,讀取的是檔案剩餘的所有字元,然後以字串方式進行返回。
f.readline()以寫入模式開啟,如果檔案存在,則在末尾加入
f.write(str)將字串str寫入檔案
f.writelines(seq)想檔案寫入字串序列seq,seq應該 是乙個返回字串的可迭代物件
f.seek(offset,from)在檔案中移動當前讀取檔案的指標,
f.tell()返回當前檔案讀取的指標位置
#file 是檔案路徑,mode 是檔案開啟模式,常用的應該還有乙個encoding 編碼格式。
open(file, mode='
r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)
#這個是檔案開啟模式
''''r' open for reading (default) 預設唯讀
'w' open for writing, truncating the file first 以寫的方式開啟檔案,會覆蓋原始檔
'x' create a new file and open it for writing,建立乙個新的檔案開啟並進行寫入操作,如果這個檔案已經存在,則會報錯
'b' binary mode 以二進位制方式開啟檔案
't' text mode (default) 以文字模式開啟
'+' open a disk file for updating (reading and writing) 可讀寫模式,可新增到其他模式中用
'u' universal newline mode (deprecated) 通用換行符
'''
假設我們有一檔案,存放在e:\\python\\day-2\\文字.txt目錄下,txt內容為「
那麼我們通過利用open進行對它的操作。
#開啟檔案
>>> f = open('
e:\\python\\day-2\\文字.txt
','r')
#讀取檔案
>>>f.read()
''#再次讀取檔案
>>>f.read()
#返回了空
''
當我們用f.read()第二次讀取的時候,因為游標已經走到了文章的結尾,所以第二次讀取為空。那麼我們想再一次讀取該檔案的時候
#移動讀取指標位置為起始位置
>>>f.seek(0,0)
0#讀取檔案一行
>>>f.readline()
''#當前位置的游標
>>>f.tell()
119
遍歷所有對話內容(每一行)
傳統的方法,傳統的方法雖然可以列印每一句話,但是效率不是很高。先看一下傳統方法列印:
#首相將游標歸到初始值
>>>f.seek(0,0)
0#利用list 來分割f
>>> list1 =list(f)
#迴圈打出每一句
>>> for each in
list1:
print(each)
那麼為了解決這個問題 python為我們提供了直接列印的方式
>>>f.seek(0,0)0>>> for each_line in
f:
print(each_line)
接上邊的例子,當我們想用write()來對剛才的檔案進行寫操作的時候,會發現不能寫入,直接報錯。因為我們操作這個檔案的模式是r模式,也就是唯讀模式:
>>> f.write("我愛你"
)
traceback (most recent call last):
file
"", line 1, in
f.write(
"我愛你")
io.unsupportedoperation:
notwritable
>>>
如果我們想對乙個檔案進行操作,那麼我該如何操作,首先我們嘗試一下open(file,'w')
#這裡利用w是乙個只寫操作
>>> f = open('
e:\\python\\day-2\\text.txt
','w')
#我們寫入乙個i love python
>>> f.write("
i love python")
13#嘗試用read()來讀取
>>>f.read()
#報錯了,說我們不能讀
traceback (most recent call last):
file
"", line 1, in
f.read()
io.unsupportedoperation:
notreadable
#這個時候如果沒有進行下一步操作,你在e盤下看到的那個檔案應該是0kb
#如果執行了close()操作,就會變成1kb,因為你要告訴python說 你已經
#操作完畢了,可以把這些東西從記憶體中儲存到硬碟了。
>>>f.close()
當我們用『x』來進行寫檔案的時候,一定要注意目錄下是否已經存在該檔案,如果存在則會報錯:
>>> e = open('e:\\python\\day-2\\text.txt
','x')
traceback (most recent call last):
file
"", line 1, in
e = open('
e:\\python\\day-2\\text.txt
','x')
fileexistserror: [errno 17] file exists: '
e:\\python\\day-2\\text.txt
'
但是如果我們不想讓報錯,那麼我們可以用w,這樣不管這個檔案存在不存在都不會報錯,因為如果存在,它就會開啟這個檔案,如果不存在則會建立這個名字的檔案。
#w建立d = open('
e:\\python\\day-2\\text.txt
','w
')
>>> f = open('e:\\python\\day-2\\文字.txt
','a')
>>> f.write("
are you sure?")
14>>>f.close()
>>> f = open('
e:\\python\\day-2\\文字.txt
','r')
>>>f.read()
'i love python are you sure?
'>>> f.close()
十六周任務(一)讀取檔案
程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 齊豔紅 版 本 號 對任務及求解方法的描述部分 輸入描述 從檔案salary.txt中讀入500名工人的工資,全部增加100元後進行排序,將排序後的結果在螢幕上輸出,並儲存到檔案ordered salary.txt中 問題描述 程式輸出 程...
(一)讀取,載入,顯示,改變,儲存
using namespace cv 下面的函式可能出現在 cv庫里。這樣寫的好處,就是當用到opencv函式時不用在前面加 cv 字樣了。mat 用來定義變數,這個變數大小不一定,它根據的大小改變的。載入影象 imread函式第乙個引數顯示 名稱 格式 例如 123.jpg 第二個引數 表示載入 ...
OPEN檔案操作 Python
open檔案操作 python f open file name 讀寫模式 讀寫模式型別 f.read size 返回一行 file.readline 返回包含size行的列表,size 未指定則返回全部行 file.readline size 通過迭代器訪問 for line in f print...