日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 基础 文本文件的操作

發布時間:2024/1/18 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 基础 文本文件的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一? 文件介紹

? ? ? 1.什么是文件

狹義說:文本文件;廣義說:超文本文件, 圖片,聲音,超鏈接,視頻。

? ? ? ?2.文件的分類

文件大體上可以分為兩類,文件文件和二進制文件。

? ? ? ?3.文件的作用

使用文件的目的是把一些數據存儲存放起來。

? ? ? ? 4.使用文件的流程

我們操作一個文件的流程一般是打開文件,讀寫文件,關閉文件。通過程序操作文件的流程也是這三步,首先打開文件,然后讀寫文件,最后關閉文件

二 讀寫文件簡單操作

基于文件的操作? ?有如下方法? ? 我們通過代碼會列舉介紹

讀取操作

r

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

rb

以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。

r+

打開一個文件用于讀寫。文件指針將會放在文件的開頭。

rb+

以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。

寫操作

w

打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。

wb

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

w+

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

wb+

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

a

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

ab

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

a+

打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。

ab+

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

?

1? 讀文件? ?read

r

file = open('file/a.txt',mode = 'r') ret = file.read() #讀取文件中的所有內容 print(ret) file.close()

file叫做文件句柄,或者文件對象? 用來操作文件

第一個參數是文件的路徑,第二個參數? mode=? 是訪問文件的模型? ?r 表示讀? 默認也是r 模式

rb? ??

file = open('121.jpg',mode='rb') ret = file.read() print(ret) file.close()""" b'\xff\xd8\xff\xe1\x000Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x01\x011\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x1a\x00\x00\x00\x00www.meitu...... """

r+

file = open('aa.txt',mode='r+') ret = file.read() print(ret) file.close()""" abcdefg #指會放在文件的開頭,下次操作時時會從光標處開始 hijklmn """

2 寫操作? wirte

w? ? ? 只用于寫入

?注意? 1文件不存在,會創建文件(不會創建目錄)? 2? 會覆蓋掉源文件的內容重新寫入?

file = open('1ji/bb.txt',mode='w') file.write('zzz') file.close()

w+? ?可用于讀寫? 其他作用和w一致

file = open('1ji/bb.txt',mode='w+') file.write('zzzaaa') ret = file.read() #讀出的內容為空 因為光標的位置在最后 print(ret) file.close()

a? ? 追加? 和 w不同的是,a 所添加的內容是追加在文件后邊的,不會覆蓋之前文件的內容? ?同樣,如果文件不存在,則會創建一個新的文件

file = open('1ji/bb.txt',mode='a') file.write('zzzaaa') file.close()

a+? ?a+可以進行讀寫??

file = open('1ji/bb.txt',mode='a+') file.write('zzzaaa') ret = file.read() #讀出的內容為空 因為光標的位置在最后 print(ret) file.close()

具體操作

read()

調用read()會一次性讀取文件的全部內容,如果文件有10G,內存就爆了,會容易導致程序卡死,所以,要保險起見,可以反復調用read(size)方法,每次最多讀取size個字節的內容

file = open('aa.txt') ret = file.read(3) print(ret) file.close()

readline()

readline? 每次讀取一行,并且自帶換行功能,每一行末尾會讀到\n

file = open('1ji/bb.txt') ret = file.readline() print(len(ret)) print(ret) print(file.readline()) print(file.readline(3)) file.close()""" 6 qwertasdaa """

readlines()

一次性以行的形式讀取文件的所有內容并返回一個list,需要去遍歷讀出來

file = open('1ji/bb.txt') ret = file.readlines() print(ret)''' ['qwert\n', 'asdaa\n', 'ssssa'] '''

循環讀取

file句柄是一個可迭代的對象,因此,可以循環讀取文件中的內容 每次只讀一行

file = open('1ji/bb.txt') for line in file:print(line)qwertasdaassssa

write()

file = open('1ji/bb.txt',mode='w') file.write('aaaaa') file.write('bbb') file.close()

writelines()

file.writelines(seq)? 把seq的內容全部寫到文件中(多行一次性寫入)

file = open('1ji/bb.txt',mode='w') lst = ['aa\n','bb','cc'] file.writelines(lst) file.close()""" aa bbcc """

其他操作

1 tell

獲取文件當中當前光標所在的位置

file = open('1ji/bb.txt',mode='r') ret = file.read(3) pos = file.tell() print(pos) print(ret) file.close()""" 4 aa """

seek()

seek 移動光標位置

參數:

offset? 移動的長度(字節)

whence? 相對位置 0 從頭(默認),1從當前 2從末尾

file = open('1ji/bb.txt',mode='r') print(file.read(3)) # file.seek(0,0) file.seek(0,1) # file.seek(0,2) #空 ret= file.read(3) print(ret) file.close()

name 和 mode??

file.name? 返回? 路徑

file.mode? 返回? 文件讀寫模式

file = open('1ji/bb.txt','r') print(file.name) #返回路徑 1ji/bb.txt print(file.mode) # r file.close()

with

使用with方式操作文件,可以不用關閉文件,會自動關閉文件。

with open('1ji/bb.txt') as file:ret = file.read()print(ret)

亂碼??

python讀寫文件時,默認使用的編碼為平臺編碼,也就是gbk。

在pycharm中創建的文件默認使用的是utf-8編碼

1,往pycharm中的1ji.bb中保存內容

with open('1ji/bb.txt',mode='w',) as file:file.write('哈哈')

2 向磁盤中文件保存內容能,不亂碼。

指定編碼

with open('1ji/bb.txt',mode='w',encoding='utf-8') as file:file.write('哈哈')

總結

以上是生活随笔為你收集整理的python 基础 文本文件的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。