欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python中文件讀寫的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)Python中文件讀寫的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比桂平網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式桂平網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桂平地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

一、什么是文件?

文件就是把一些存儲(chǔ)存放起來,可以讓程序下一次執(zhí)行的時(shí)候直接使用,而不必重新制作一份,省時(shí)省力。

二、文件如何的打開?

Python內(nèi)置了一個(gè)open()方法,可以對(duì)文件進(jìn)行讀寫操作。

使用open()方法操作文件就像把大象塞進(jìn)冰箱一樣,可以分三步走,一是打開文件,二是操作文件,三是關(guān)閉文件。

open語(yǔ)法

open()方法的返回值是一個(gè)file對(duì)象,可以將它賦值給一個(gè)變量(文件句柄)。

其基本語(yǔ)法格式為:

f = open(filename, mode)

注:

Python中,所有具有read和write方法的對(duì)象,都可以歸類為file類型。而所有的file類型對(duì)象都可以使用open方法打開,close方法結(jié)束。

filename:一個(gè)包含了你要訪問的文件名稱的字符串值,通常是一個(gè)文件路徑。

mode:打開文件的模式,有很多種,默認(rèn)是只讀方式r。

例:

# 打開一個(gè)文件 f = open("1.txt", "w") f.write("Python 是一種非常好的語(yǔ)言。\nPython!!\n") # 關(guān)閉打開的文件 f.close()

運(yùn)行結(jié)果:

在1.txt文件中寫入Python 是一種非常好的語(yǔ)言。Python。

Python中文件讀寫的示例分析

三、訪問模式

通過一個(gè)表格,了解Python常用的讀寫模式

Python中文件讀寫的示例分析

如果要讀取非UTF-8編碼的文件,需要給open()函數(shù)傳入encoding參數(shù)。

例如,讀取GBK編碼的文件:

>>> f = open('gbk.txt', 'r', encoding='gbk') >>> f.read() 'GBK' #編碼

遇到有些編碼不規(guī)范的文件,可能會(huì)拋出UnicodeDecodeError異常,這表示在文件中可能夾雜了一些非法編碼的字符。遇到這種情況,可以提供errors參數(shù),表示如果遇到編碼錯(cuò)誤后如何處理。

f = open('gbk.txt', 'r', encoding='gbk', errors='ignore')

四、 文件對(duì)象操作

用open方法打開一個(gè)文件,將返回一個(gè)文件對(duì)象。這個(gè)對(duì)象內(nèi)置了很多操作方法。

下面打開了一個(gè)f文件對(duì)象(1.txt)。對(duì)文件對(duì)象進(jìn)行相關(guān)的操作。

1. f.read(size)

讀取一定大小的數(shù)據(jù),  然后作為字符串或字節(jié)對(duì)象返回。size是一個(gè)可選的數(shù)字類型的參數(shù),用于指定讀取的數(shù)據(jù)量。當(dāng)size被忽略了或者為負(fù)值,那么該文件的所有內(nèi)容都將被讀取并且返回。

f = open("1.txt", "r")  str = f.read() print(str)  f.close()

如果文件體積較大,請(qǐng)不要使用read()方法一次性讀入內(nèi)存,而是read(312)這種一點(diǎn)一點(diǎn)的讀。

2. f.readline()

從文件中讀取一行n內(nèi)容。換行符為'\n'。如果返回一個(gè)空字符串,說明已經(jīng)已經(jīng)讀取到最后一行。這種方法,通常是讀一行,處理一行的情況下使用。

f = open("1.txt", "r") str = f.readline() print(str) f.close()

3. f.readlines()

將文件中所有的行,一行一行全部讀入一個(gè)列表內(nèi),按順序一個(gè)一個(gè)作為列表的元素,并返回這個(gè)列表。readlines方法會(huì)一次性將文件全部讀入內(nèi)存,所以也存在一定的弊端。但是它有個(gè)好處,每行都保存在列表里,可隨意存取。

f = open("1.txt", "r") a = f.readlines() print(a) f.close()

4. 遍歷文件

實(shí)際情況中,我們會(huì)將文件對(duì)象作為一個(gè)迭代器來使用。

# 打開一個(gè)文件 f = open("1.txt", "r")  for line in f:     print(line, end='')  # 關(guān)閉打開的文件 f.close()

這個(gè)方法很簡(jiǎn)單, 不需要將文件一次性讀出,但是同樣沒有提供一個(gè)很好的控制,與readline方法一樣只能前進(jìn),不能回退。

幾種不同的讀取和遍歷文件的方法比較:

如果文件很小,read()一次性讀取最方便;

如果不能確定文件大小,反復(fù)調(diào)用read(size)比較保險(xiǎn);

如果是配置文件,調(diào)用readlines()最方便。普通情況,使用for循環(huán)更好,速度更快。

5. f.write()

使用write()可以完成向文件寫入數(shù)據(jù)。

# 打開一個(gè)文件 f = open("/tmp/foo.txt", "w")  f.write("Python 是一種非常好的語(yǔ)言。\n我喜歡Python!!\n")  # 關(guān)閉打開的文件 f.close()

6. f.tell()

返回文件讀寫指針當(dāng)前所處的位置,它是從文件開頭開始算起的字節(jié)數(shù)。一定要注意了,是字節(jié)數(shù),不是字符數(shù)。

7. f.seek()

如果要改變位置指針的位置, 可以使用f.seek(offset, from_what)方法。seek()經(jīng)常和tell()方法配合使用。

from_what的值,如果是0表示從文件開頭計(jì)算,如果是1表示從文件讀寫指針的當(dāng)前位置開始計(jì)算,2表示從文件的結(jié)尾開始計(jì)算,默認(rèn)為0,例如:

offset:表示偏移量。

  • seek(x,0) :從起始位置即文件首行首字符開始移動(dòng) x 個(gè)字符。

  • seek(x,1) :表示從當(dāng)前位置往后移動(dòng)x個(gè)字符。

  • seek(-x,2):表示從文件的結(jié)尾往前移動(dòng)x個(gè)字符。

例:

f = open("1.txt", "rb+") f.write(b"1232312adsfalafds")  print(f.tell())   print(f.seek(5))  print(f.read(1))  print(f.seek(-3, 2))  print(f.read(1))

運(yùn)行結(jié)果:

Python中文件讀寫的示例分析

8. f.close()

關(guān)閉文件對(duì)象。當(dāng)處理完一個(gè)文件后,調(diào)用f.close()來關(guān)閉文件并釋放系統(tǒng)的資源。文件關(guān)閉后,如果嘗試再次調(diào)用該文件對(duì)象,則會(huì)拋出異常。忘記調(diào)用close()的后果是數(shù)據(jù)可能只寫了一部分到磁盤,剩下的丟失了,或者更糟糕的結(jié)果。

五、 with關(guān)鍵字

with關(guān)鍵字用于Python的上下文管理器機(jī)制。為了防止open這一類文件打開方法,在操作過程出現(xiàn)異常或錯(cuò)誤,或者最后忘了執(zhí)行close方法,文件非正常關(guān)閉等可能導(dǎo)致文件泄露、破壞的問題。

Python提供了with這個(gè)上下文管理器機(jī)制,保證文件會(huì)被正常關(guān)閉。不需要再寫close語(yǔ)句。注意縮進(jìn)。

with open('test.txt', 'w') as f:     f.write('Hello, world!')

with支持同時(shí)打開多個(gè)文件(文件都是隨機(jī)創(chuàng)建的):

with open('1') as obj1, open('2','w') as obj2:     s=obj1.read()     obj2.write(s)

關(guān)于“Python中文件讀寫的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享名稱:Python中文件讀寫的示例分析
網(wǎng)站URL:http://chinadenli.net/article2/iphhoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司企業(yè)建站商城網(wǎng)站網(wǎng)站設(shè)計(jì)網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)