中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何進行文件處理

發布時間:2022-02-23 10:23:06 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

這篇文章主要介紹“python如何進行文件處理”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python如何進行文件處理”文章能幫助大家解決問題。

一、open()方法

python open()方法用于打開一個文件,并返回文件對象,在對文件處理的過程中都需要用到這個函數,如果文件無法打開,會拋出OSError。

注意:使用open()方法的時候一定到保證關閉文件對象,文件里面的內容才會被保存,關閉文件需要調用close()方法。

open()方法常用的形式是接收兩個參數:文件名(file)和模式(mode)

基本語法

open(file,mode='r')

完整的語法:

open(file,mode='r',buffering=1,encoding=None,errors=None,newline=None,closefd=True)

參數說明:

  • file: 必須的,表示某個路徑下文件名(可以是相對路徑,也可以是絕對路徑) 

  • mode:可選參數,文件打開的模式    

  • buffering: 設置緩沖

  • encoding: 編碼,一般用utf8

  • errors: 報錯級別

  • newline:區分換行符

  • closefd:傳入的file參數類型

mode表示文件打開模式,有幾種模式呢?參考如下:

  • r: 以只讀的方式打開文件。文件的指針將會放到文件的開頭。這是文件默認的打開模式

  • w:  打開一個文件只能用于寫入。如果文件存在則打開文件,并且從頭開始編輯,文件原有的內容會被清空。如果文件不存在,則會創建新的文件

  • a:  打開一個文件用于在里面追加內容。如果文件已經存在,文件指針將會放在文件的結尾。也就是新的內容會被寫道已有的內容之后。如果該文件不存在的話,創建新文件進行寫入

  • r+:打開一個文件用于讀寫,文件指針將會放在文件的開頭

  • a+: 打開一個文件用于讀寫,如果文件已經存在,文件指針將會放在文件的結尾,文件打開時回事追加模式,如果該文件不存在,創建新的文件用于讀寫

  • w+: 打開一個文件用于讀寫。如果該文件已經存在,則打開已經存在文件,并且從頭開始編輯,即原有的內容會被刪除。如果該文件不存在,則創建新文件

  • b: 二進制文件

  • rb:以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認的模式,一般用于非文本文件,如圖片,視頻等

  • wb: 以二進制格式打開一個文件只用于寫入。如果該文件已經存在則打開文件,并從文件的開頭開始編輯,即原有的內容會被刪除,如果該文件不存在,創建新文件。一般用于非文本文件,如圖片,視頻等

  • ab:以二進制格式打開一個文件用于追加,如果該文件已經存在,文件指針將會放在文件的結尾,也就是說,新的內容將會被寫道已有的內容之后,如果該文件不存在,則創建新的文件并寫入

  • ab+:以二進制格式打開一個文件用于追加,如果該文件已經存在,文件指針將會放在文件的結尾,如果該文件不存在,創建新的文件用于讀寫

例1:以w模式打開文件

f = open('myfile.txt', 'w')
f.write('hello,world!')
f.close()
 
##輸出結果
在當前路徑下成一個myfile.txt文件,并且把'hello world'寫到該文件
 
myfile.txt內容如下:
hello,world!

例2: 以a模式打開文件

f=open('myfile.txt','a')
f.write('
good lucky')
f.close()
 
##輸出結果:
會在文件末尾追加內容,不會覆蓋原來的內容
 
myfile.txt內容如下:
hello,world!
good,lucky!

例3: 再以w模式打開文件,會把原來內容覆蓋掉

f = open('myfile.txt', 'w')
f.write('welcome!')
f.close()
 
##輸出內容:
 
myfile.txt內容如下:
welcome!

例4: 以r的模式讀文件

f = open('myfile.txt', 'r') #以r模式讀文件,再往里面write會報錯
f.write('
hello!')
f.close()
 
## 輸出內容:
    f.write('
hello!')
io.UnsupportedOperation: not writable

例5: 以r+的模式讀文件

f = open('myfile.txt', 'r+') 
f.write('
hello!')
f.close()
 
##輸出結果
r+:打開一個文件用于讀寫,文件指針將會放在文件的開頭
 
myfile.txt內容:
1--------------> 此處表示空行
2hello!

例6: 以w+模式寫文件

f = open('myfile.txt', 'w+')
f.write('love!')
f.close()
 
##輸出結果:
如果該文件已經存在,則打開已經存在文件,并且從頭開始編輯,即原有的內容會被刪除。如果該文件不存在,則創建新文件。
 
myfile.txt內容:
love!

二、read()方法

讀取文件中的所有內容,讀取之后光標移動到文件末尾。 必須以r或r+模式,才可以使用read()。

例7: 以w+模式寫文件,再以r+模式來讀取文件內容

f = open('myfile.txt', 'w+')
f.write('hello,world!
good,lucky!!')
f.close()
 
##輸出結果:
w+ 如果該文件已經存在,則打開已經存在文件,并且從頭開始編輯,即原有的內容會被刪除。如果該文件不存在,則創建新文件。
 
myfile.txt內容:
hello,world!
good,lucky!!
f = open('myfile.txt', 'r+') #
print(f.read())
 
##輸出結果:
hello,world!
good,lucky!!

例8:以r+模式寫文件,再來讀取文件

f = open('myfile.txt', 'r+') #以r+的模式,會將文件指針放在開頭,然后將指定字符替換掉文件中原來的字符  
f.write('
welcom')
print(f.read())
 
##輸出結果:
rld!
good,lucky!!
 
#myfile.txt內容如下:
1----------->空行
2welcomrld!
3good,lucky!!

三、readlines()方法

readlines()一行行讀文件

例9:

f = open('myfile.txt', 'r+')
print(f.readline())
print(f.readline())
print(f.readline())
 
##輸出結果
 
 
welcomrld!
 
good,lucky!!

readlines()

一行行讀取文件內容,然后存放在列表中,可以讀取所有行的內容,每行的內容都作為列表中的一個元素存在列表里,并且返回一個列表。 這個列表可以使用for..in 結構進行處理。 如果碰到EOF結束符,則返回空字符。

例10:

f = open('myfile.txt', 'r')
print(f.readlines())
 
##輸出內容:
['
', 'welcomrld!
', 'good,lucky!!']
 
 
 
f = open('myfile.txt', 'r')
for i in f.readlines():
    i = i.strip()   # 去掉空格,如
換行符
    print(i)
 
##輸出內容:
----------->空行
welcomrld!
good,lucky!!

四、seek()方法

seek() 用于移動文件讀取指針到指定位置

語法如下:f.seek(offset,[,whence])
offset--開始的偏移量,也就是代表需要移動偏移的字節數,如果是負數,表示從倒數第幾位開始
whence--可選參數,默認是0。給offset定義一個參數,表示從哪個位置開始偏移;0代表從文件開頭算起;1代表從當前位置開始算起;2代表從文件末尾算起。 

如果操作成功,則返回新的文件位置;如果操作失敗,返回-1

例11:

f = open('workfile.txt', 'wb+')
print(f.write(b'0123456789abcde'))
f.seek(5)
print(f.read(1))
f.seek(-3,2)
print(f.read(1))
 
##輸出結果:
15
b'5'
b'c'
 
workfile.txt內容如下:
0123456789abcde

例12:

f = open('myfile.txt', 'r')
print('filename is :',f.name)
line=f.readline().strip()           ##去掉

print('第一次讀取的數據是%s' % (line))
f.seek(0, 0)                        ##第一個0表示偏移量為0,第二個0表示從文件頭開始偏移
line=f.readline().strip()
print('第二次讀取的數據是%s' % (line))
 
##輸出內容:
filename is : myfile.txt
第一次讀取的數據是good,lucky!!
第二次讀取的數據是good,lucky!!
 
myfile.txt內容如下:
good,lucky!!

##去掉 f.seek(0, 0),運行結果如下:
f = open('myfile.txt', 'r')
print('filename is :',f.name)
line=f.readline().strip()
print('第一次讀取的數據是%s' % (line))
line=f.readline().strip()
print('第二次讀取的數據是%s' % (line))
 
##運行結果如下:
filename is : myfile.txt
第一次讀取的數據是good,lucky!!
第二次讀取的數據是

五、tell()函數 

返回文件的當前位置

f = open('myfile.txt', 'r+')
print('filename is :', f.name)
line=f.readline()
print('讀取的數據是%s' % (line))
 
 
line1=f.readline()
print('讀取的數據是%s' % (line1))
pos=f.tell()
print('current position is %d:' % (pos) )
f.close()
 
##輸出結果
filename is : myfile.txt
讀取的數據是good,lucky!!
讀取的數據是
current position is 12:
 
myfile.txt內容如下:
good,lucky!!
 
 
 
 
##輸出結果
filename is : myfile.txt
讀取的數據是good,lucky!!
 
讀取的數據是g
current position is 15:
 
myfile.txt內容如下:
good,lucky!!
g

關于“python如何進行文件處理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

电白县| 隆回县| 子洲县| 新密市| 苗栗市| 江西省| 朝阳区| 衡水市| 贵南县| 邵东县| 池州市| 元朗区| 南雄市| 霍州市| 金堂县| 嘉善县| 合山市| 沁阳市| 齐齐哈尔市| 江孜县| 星子县| 黄冈市| 布拖县| 油尖旺区| 广平县| 东平县| 防城港市| 赫章县| 永川市| 岳普湖县| 哈巴河县| 天水市| 靖远县| 林芝县| 许昌市| 三明市| 榆树市| 潞城市| 城口县| 稷山县| 黎平县|