国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用Python 3.6進行處理文件,文件的創(chuàng)建和讀取代碼實解

使用Python處理文件

數(shù)據(jù)的存儲可以使用數(shù)據(jù)庫,也可以使用文件。數(shù)據(jù)庫保持了數(shù)據(jù)的完整性和關(guān)聯(lián)性,而且使數(shù)據(jù)更安全、可靠。使用文件存儲數(shù)據(jù)則非常簡單、易用,不必安裝數(shù)據(jù)庫管理系統(tǒng)等運行環(huán)境。文件通常用于存儲應用軟件的參數(shù)或臨時性數(shù)據(jù)。Python的文件操作和Java的文件操作十分相似,Python提供了os、os.path等模塊處理文件。

文件的常見操作

文件通常用于存儲數(shù)據(jù)或應用系統(tǒng)的參數(shù)。Python提供了os、os.path、shutil等模塊處理文件,其中包括打開文件、讀寫文件、復制和刪除文件等函數(shù)。

文件的創(chuàng)建

Python3中移除了全局的file()函數(shù),還保留了open()函數(shù)。文件的打開或創(chuàng)建可以使用函數(shù)open()。該函數(shù)可以指定處理模式,設置打開的文件為只讀、只寫或可讀寫狀態(tài)。open()的聲明如下所示。

open(file, mode='r', buffering=-1, encoding=None,

errors=None, newline=None, closefd=True, opener=None) -> file object

【代碼說明】

  • 參數(shù)file是被打開的文件名稱。如果文件file不存在,open()將創(chuàng)建名為name的文件,然后再打開該文件。

  • 參數(shù)mode是指文件的打開模式。文件的打開模式如表7-1所示。

  • 參數(shù)buffering設置緩存模式。0表示不緩存;1表示行緩沖;如果大于1則表示緩沖區(qū)的大小,以字節(jié)為單位。

  • open()返回1個file對象,file對象可以對文件進行各種操作。

注意 對于圖片、視頻等文件必須使用“b”的模式讀寫。

file類用于文件管理,可以對文件進行創(chuàng)建、打開、讀寫、關(guān)閉等操作。file類的常用屬性和方法如下表:

文件的處理一般分為以下3個步驟:

1)創(chuàng)建并打開文件,使用file()函數(shù)返回1個file對象。

2)調(diào)用file對象的read()、write()等方法處理文件。

3)調(diào)用close()關(guān)閉文件,釋放file對象占用的資源。

注意 close()方法是必要的。雖然Python提供了垃圾回收機制,清理不再使用的對象,但是手動釋放不再需要的資源是一種良好的習慣。同時也顯式地告訴Python的垃圾回收器:該對象需要被清除。

下面這段代碼演示了文件的創(chuàng)建、寫入和關(guān)閉操作。

# 創(chuàng)建文件

context = '''hello world'''

file = open('hello.txt', 'w') # 打開文件

file.write(context) # 把字符串寫入文件

file.close() # 關(guān)閉文件

【代碼說明】

  • 第3行代碼調(diào)用open()創(chuàng)建文件hello.txt,設置文件的訪問模式為“w”。open()返回文件對象f。

  • 第4行代碼把變量context的值寫入文件hello.txt。

  • 第5行代碼調(diào)用對象f的close()方法,釋放對象f占用的資源。

文件的讀取

文件的讀取有多種方法,可以使用readline()、readlines()或read()函數(shù)讀取文件。下面將一一介紹這些函數(shù)讀取文件的實現(xiàn)方法。

1.按行讀取方式readline()

readline()每次讀取文件中的一行,需要使用永真表達式循環(huán)讀取文件。但當文件指針移動到文件的末尾時,依然使用readline()讀取文件將出現(xiàn)錯誤。因此程序中需要添加1個判斷語句,判斷文件指針是否移動到文件的尾部,并且通過該語句中斷循環(huán)。

下面這段代碼演示了readline()的使用。

編輯測試文件為:

# cat hello.txt

hello world

hello China

# 使用readline()讀文件

f = open('hello.txt')

while True:

line0 = f.readline(2)

if line0:

print(line0)

else:

break

f.close()

print('---------------------------')

print('由于hello.txt剛才被打開讀取完成,所以這里需要重新打開文件,重頭讀取文件。')

print('---------------------------')

f = open('hello.txt')

while True:

line1 = f.readline()

if line1:

print(line1)

else:

break

f.close()

【代碼說明】

  • 第3行代碼使用了“Ture”作為循環(huán)條件,構(gòu)成1個永真循環(huán)。

  • 第4行代碼并不表示每行只讀取2個字節(jié)的內(nèi)容,而是指每行每次讀2個字節(jié),直到行的末尾。

  • 第18行代碼調(diào)用readline(),讀取hello.txt文件的每一行。

  • 第19行代碼,判斷變量line是否為真。如果為真,則輸出當前行的內(nèi)容;否則,退出循環(huán)。

2.多行讀取方式readlines()

使用readlines()讀取文件,需要通過循環(huán)訪問readlines()返回列表中的元素。

函數(shù)readlines()可一次性讀取文件中多行數(shù)據(jù)。

下面這段代碼演示了readlines()讀取文件的方法:

# 使用readlines()讀文件

f = open('hello.txt')

lines = f.readlines()

for line in lines:

print(line)

f.close()

【代碼說明】

  • 第3行代碼調(diào)用readlines(),把文件hello.txt中所有的內(nèi)容存儲在列表lines中。

  • 第4行代碼循環(huán)讀取列表lines中的內(nèi)容。

  • 第5行代碼輸出列表lines每個元素的內(nèi)容,即文件hello.txt每行的內(nèi)容。

  • 第6行代碼手動關(guān)閉文件。

3.一次性讀取方式read()

讀取文件最簡單的方法是使用read(),read()將從文件中一次性讀出所有內(nèi)容,并賦值給1個字符串變量。

下面這段代碼演示了read()讀取文件的方法:

# 使用read()讀文件

f = open('hello.txt')

context = f.read()

print(context)

f.close()

【代碼說明】

第3行代碼調(diào)用read(),把文件hello.txt中所有的內(nèi)容存儲在變量context中。

第4行代碼輸出所有文件內(nèi)容。

可以通過控制read()參數(shù)的值,返回指定字節(jié)的內(nèi)容。

f = open('hello.txt')

context = f.read(5) # 讀取文件前5個字節(jié)的內(nèi)容

print(context)

print(f.tell()) # 返回文件對象當前指針位置

context = f.read(5) # 繼續(xù)讀取5個字節(jié)內(nèi)容

print(context)

print(f.tell())

f.close()

【代碼說明】

  • 第2行代碼調(diào)用read(5),讀取hello.txt文件中前5個字節(jié)的內(nèi)容,并存儲到變量context中。此時文件的指針移到第5個字節(jié)處。

  • 第3行代碼輸出變量context的結(jié)果,輸出的結(jié)果為“hello”。

  • 第4行代碼調(diào)用tell(),輸出當前文件指針的位置:5。

  • 第5行代碼再次調(diào)用read(5),讀取第6個字節(jié)到第10個字節(jié)的內(nèi)容。

  • 第6行代碼輸出結(jié)果為“worl”。

  • 第7行代碼輸出當前文件指針的位置:10。

注意 file對象內(nèi)部將記錄文件指針的位置,以便下次操作。只要file對象沒有執(zhí)行close()方法,文件指針就不會釋放。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python按行讀取txt文件
python逐行讀取文件內(nèi)容的三種方法
第15天:Python 輸入輸出
【每日一學】一文掌握Python中read、readline和readlines的區(qū)別
零基礎小白python入門——深入Python中的文件操作
python中read() readline()以及readlines()對比(轉(zhuǎn))
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服