最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用open函數(shù)對文件進行處理詳解

 更新時間:2022年05月09日 15:41:15   作者:靜靜超愛滿滿  
今天看了open函數(shù),看到w+ r+ a+ 這種可讀可寫的操作,下面這篇文章主要給大家介紹了關(guān)于python使用open函數(shù)對文件進行處理的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

在python中使用open函數(shù)對文件進行處理。

1.open()

python打開文件使用open()函數(shù),返回一個指向文件的指針。該函數(shù)常用以下三個參數(shù)。

1.1 參數(shù)1

目標(biāo)文件的路徑+名字。最好使用r"路徑"這種原始字符串寫法,防止有轉(zhuǎn)義字符影響實際路徑。

1.2 參數(shù)2

操作文件的方式mode=‘方式’。mode=可以省略。下面對操作文件的方式進行詳細(xì)說明:

(1)r

以只讀方式打開文件。文件的指針將會放在文件的開頭。這是open默認(rèn)模式。如果文件不存在,會報錯。

(2)rb

以二進制只讀方式打開一個文件。文件指針將會放在文件的開頭。注意這種方式不能使用encoding,不然會報錯。

同樣的內(nèi)容使用一般方式和二進制的方式打開。

fp = open(r"E:\test.txt",'r',encoding='utf-8')
content = fp.readline()
print(content)

輸出:加油,好好干!

fp = open(r"E:\test.txt",'rb')
content = fp.readline()
print(content)

輸出:b’\xe5\x8a\xa0\xe6\xb2\xb9\xef\xbc\x8c\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xb9\xb2\xef\xbc\x81’

(3)r+

以讀寫方式打開一個文件。文件指針將會放在文件的開頭。直接寫入會覆蓋文件開頭的內(nèi)容。

原始內(nèi)容:

加油,好好干!別放棄

fp = open(r"E:\test.txt",'r+',encoding='utf-8')
fp.write("開心吧")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

執(zhí)行后:

開心吧好好干!別放棄

(4)rb+

以二進制讀寫方式打開一個文件。文件指針將會放在文件的開頭。

(5)w

以寫入打開一個文件。如果該文件已存在,則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件。

(6)wb

以二進制寫入方式打開一個文件。如果該文件已存在,則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件。
(7)w+

以讀寫方式打開一個文件。如果該文件已存在,則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件。

原始內(nèi)容:

開心吧好好干!別放棄

fp = open(r"E:\test.txt",'w+',encoding='utf-8')
fp.write("認(rèn)真一點")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

執(zhí)行后直接覆蓋所有原始內(nèi)容:

認(rèn)真一點

(8)wb+

以二進制讀寫格式打開一個文件。如果該文件已存在,則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件。

(9)a

以追加方式打開一個文件。如果文件已存在,文件指針將會放在文件結(jié)尾。即:新的內(nèi)容將會被追加到已有的內(nèi)容之后。如果該文件不存在,則創(chuàng)建新文件可用于寫入。注意,不能讀,讀會出錯。

(10)a+

以讀寫方式打開一個文件。如果文件已存在,文件指針將會放在文件結(jié)尾。即:新的內(nèi)容將會被追加到已有的內(nèi)容之后。如果該文件不存在,則創(chuàng)建新文件可用于讀寫。

原始內(nèi)容:

認(rèn)真一點

fp = open(r"E:\test.txt",'a+',encoding='utf-8')
fp.write("你就離成功近一點")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

執(zhí)行后追加:

認(rèn)真一點你就離成功近一點

這時候,指針放在文件尾部,直接讀取會沒有內(nèi)容,需要將指針移動(seek)到文件的頭部:

with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
    fp.seek(0,0)
    content = fp.readline()
    print(content)

(11)ab+

以二進制讀寫方式打開一個文件。如果文件已存在,文件指針將會放在文件結(jié)尾。即:新的內(nèi)容將會被追加到已有的內(nèi)容之后。如果該文件不存在,則創(chuàng)建新文件可用于讀寫。

1.3 參數(shù)3

編碼的方式,常用utf-8,gbk等。如:encoding=‘utf-8’

如果是二進制的方式,這個參數(shù)不需要填,填了還會報錯。

2.with open() as

這是open()的一種升級用法,控制塊結(jié)束的時候文件會自動關(guān)閉,不需要顯示地調(diào)用close()關(guān)閉文件。這種方法更方便使用,所以推薦大家使用這種方法。

with open(r"E:\test.txt",'r',encoding='utf-8') as fp:
    content = fp.readlines()

3.open函數(shù)常用的方法

3.1 讀

文件內(nèi)容:

認(rèn)真一點你就離成功近一點
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff

(1)read()

一次性讀取整個文件內(nèi)容,將整個文件放到一個字符串中。使用read(size)方法,返回文件中的前size個字符:

content = fp.read()

輸出:

認(rèn)真一點你就離成功近一點
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff

(2)readline()

每次讀取一行內(nèi)容。

content = fp.readline()

輸出:

認(rèn)真一點你就離成功近一點

(3)readlines()

一次性讀取整個文件內(nèi)容到一個迭代器以供我們遍歷(讀取到一個list中,以供使用,比較方便)

content = fp.readlines()

輸出;

[‘認(rèn)真一點你就離成功近一點\n’, ‘啊啊啊啊啊啊啊啊啊啊啊\n’, ‘fffffffffff’]

3.2 寫

(1)write()

fp.write()的參數(shù)必須是一個字符串,就是你要寫入文件的內(nèi)容.

(2)writelines()

fp.writelines()的參數(shù)可以是列表,也可以是字符串。

3.3 獲取文件讀寫類型

如果文件可寫,則 fp.writable() 方法返回 True,否則返回 False。

如果文件是可讀的,則 fp.readable() 方法返回 True,否則返回 False。

比如:以w方式打開的文件,fp.readable()返回False,fp.writable()返回True。

3.4 指針移動

seek

f.seek(偏移量,[起始位置])

起始位置的三種取值:0文件開頭,1當(dāng)前位置,2文件末尾

例子見1.3中(10)a+

3.5 當(dāng)前指針位置

tell()返回一個整數(shù),表示當(dāng)前文件指針的位置(就是到文件頭的字節(jié)數(shù)).

如果是utf-8編碼,那么一個中文字符占用三個字節(jié),一個英文字符占用一個字節(jié)。如果是gbk編碼,那么一個中文字符占用兩個字節(jié),一個英文字符占用一個字節(jié)。

with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
    content = fp.tell()
    print(content)

打?。?0

3.6 truncate

truncate(size) 方法用于截斷文件,如果指定了可選參數(shù) size,則表示截斷文件為 size 個字符。 如果沒有指定 size,則從當(dāng)前位置起截斷;截斷之后 size 后面的所有字符被刪除。

總結(jié)

到此這篇關(guān)于python使用open函數(shù)對文件進行處理的文章就介紹到這了,更多相關(guān)python open函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于opencv實現(xiàn)的人臉識別(適合初學(xué)者)

    Python基于opencv實現(xiàn)的人臉識別(適合初學(xué)者)

    OpenCV是一個基于BSD許可開源發(fā)行的跨平臺計算機視覺庫,下面這篇文章主要給大家介紹了關(guān)于Python基于opencv實現(xiàn)的人臉識別,文中通過實例代碼介紹的非常詳細(xì),本文的教程非常適合初學(xué)者,需要的朋友可以參考下
    2022-03-03
  • Python利用ElementTree模塊處理XML的方法詳解

    Python利用ElementTree模塊處理XML的方法詳解

    ElementTree是python的XML處理模塊,它提供了一個輕量級的對象模,下面這篇文章就來給大家介紹了關(guān)于Python利用ElementTree模塊處理XML的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • 關(guān)于Python字典(Dictionary)操作詳解

    關(guān)于Python字典(Dictionary)操作詳解

    這篇文章主要介紹了關(guān)于Python字典(Dictionary)操作詳解,Python字典是另一種可變?nèi)萜髂P?,且可存儲任意類型對象,如字符串、?shù)字、元組等其他容器模型,需要的朋友可以參考下
    2023-04-04
  • python如何通過FastAPI構(gòu)建復(fù)雜的Web?API

    python如何通過FastAPI構(gòu)建復(fù)雜的Web?API

    FastAPI是一個現(xiàn)代的、快速(高性能)的Web框架,用于構(gòu)建API,這篇文章主要介紹了python如何通過FastAPI構(gòu)建復(fù)雜的Web?API,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • 淺談Python中re.match()和re.search()的使用及區(qū)別

    淺談Python中re.match()和re.search()的使用及區(qū)別

    這篇文章主要介紹了淺談Python中re.match()和re.search()的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python實現(xiàn)的二維碼生成小軟件

    Python實現(xiàn)的二維碼生成小軟件

    這篇文章主要介紹了Python實現(xiàn)的二維碼生成小軟件,使用wxPython、python-qrcode、pyqrcode、pyqrnative等技術(shù)和開源類庫實現(xiàn),需要的朋友可以參考下
    2014-07-07
  • Python使用K-means實現(xiàn)文本聚類功能

    Python使用K-means實現(xiàn)文本聚類功能

    最近遇到了這樣一個需求,將N個文本內(nèi)容聚類成若干個主題詞團,減少人工分析文本和分類文本的工作量,實現(xiàn)思路是使用?K-means算法通過高頻詞對文本內(nèi)容進行聚類,K-means算法實現(xiàn)原理簡單易于理解,本文給大家介紹了Python使用K-means實現(xiàn)文本聚類功能,需要的朋友可以參考下
    2024-11-11
  • 深入探討Python中弱引用機制與應(yīng)用

    深入探討Python中弱引用機制與應(yīng)用

    在Python編程中,弱引用(Weak Reference)是一種特殊的引用方式,本文將深入探討Python的弱引用機制,介紹其用法、原理及實際應(yīng)用場景,希望對大家有所幫助
    2024-03-03
  • Django學(xué)習(xí)之靜態(tài)文件與模板詳解

    Django學(xué)習(xí)之靜態(tài)文件與模板詳解

    這篇文章主要為大家詳細(xì)介紹了Django靜態(tài)文件與模板,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python將時分秒轉(zhuǎn)換成秒的實例

    python將時分秒轉(zhuǎn)換成秒的實例

    今天小編就為大家分享一篇python將時分秒轉(zhuǎn)換成秒的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

威信县| 常熟市| 房山区| 汨罗市| 恩平市| 利津县| 文水县| 永平县| 荣成市| 双鸭山市| 磐石市| 禹城市| 务川| 双鸭山市| 饶平县| 龙南县| 贵港市| 凌云县| 会宁县| 蛟河市| 阳曲县| 运城市| 连云港市| 红安县| 中江县| 榕江县| 巴中市| 阆中市| 丹巴县| 宜州市| 龙海市| 个旧市| 平陆县| 紫云| 新余市| 尤溪县| 北票市| 富平县| 凤台县| 隆回县| 离岛区|