欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 文件操作大全

 更新時(shí)間:2019年09月17日 09:05:16   作者:椰椰椰耶  
這篇文章主要介紹了Python 文件操作大全,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

打開(kāi)文件

在讀寫(xiě)文件前需要先打開(kāi)文件

open 打開(kāi)一個(gè)文件

f = open('d:/MyComputer/text.txt','r')
print(f)  
print(type(f))
"""
運(yùn)行結(jié)果
<_io.TextIOWrapper name='d:/My Computer/text.txt' mode='r' encoding='cp936'>
<class '_io.TextIOWrapper'>
"""
  • 前面一個(gè)參數(shù)是指:需要打開(kāi)哪個(gè)文件
  • 后面一個(gè)參數(shù)是指:打開(kāi)方式
    • rread,按照讀方式打開(kāi)
    • wwrite,按照寫(xiě)方式打開(kāi)
    • aappend,按照寫(xiě)方式打開(kāi),把內(nèi)容寫(xiě)到原有文件內(nèi)容的末尾
  • open 的返回值是一個(gè)文件對(duì)象,f 相當(dāng)于是 file 的縮寫(xiě)
  • 文件的內(nèi)容,是在硬盤(pán)上的
  • 此處的文件對(duì)象,則是內(nèi)存上的一個(gè)變量
  • 后續(xù)讀寫(xiě)文件操作,都是拿著這個(gè)文件對(duì)象來(lái)進(jìn)行操作的
    此處的文件對(duì)象就像一個(gè)“遙控器”一樣,計(jì)算機(jī)中,也把這樣的遠(yuǎn)程操控的“遙控器”稱為“句柄”(handler

關(guān)閉文件

文件在打開(kāi)完之后,使用完之后,一定要關(guān)閉!
打開(kāi)文件,其實(shí)是在申請(qǐng)一定的系統(tǒng)資源。不再使用文件的時(shí)候,資源就應(yīng)該及時(shí)釋放
否則就可能造成文件資源泄露,進(jìn)一步導(dǎo)致其他部分的代碼無(wú)法順利打開(kāi)文件了
正是因?yàn)橐粋€(gè)系統(tǒng)的資源是有限的,因此一個(gè)程序能打開(kāi)的文件個(gè)數(shù)也是有上限的

f.close()

文件打開(kāi)的上限

# 文件打開(kāi)的上限  
FIle = []  
count = 0  
while True:  
    f = open('d:/My Computer/text.txt')  
    first.append(f)  
    count += 1  
    print(f'打開(kāi)文件的個(gè)數(shù):{count}')

  • 在系統(tǒng)中,可以通過(guò)一些設(shè)置項(xiàng),來(lái)配置能打開(kāi)文件的最大數(shù)目
  • 但無(wú)論配置多少,都不是無(wú)窮無(wú)盡的,所以需要記得及時(shí)關(guān)閉文件,釋放資源
  • 這里將文件對(duì)象放入數(shù)組 File 中,是為了避免產(chǎn)生垃圾回收
    • 垃圾回收(GC)是 Python 的一個(gè)重要機(jī)制,自動(dòng)把不用的變量給釋放掉
    • 如果不將每次打開(kāi)的文件對(duì)象放入 FIle 中,那么前面打開(kāi)的文件對(duì)象就會(huì)由于沒(méi)有使用而被自動(dòng)釋放,最后導(dǎo)致文件在不關(guān)閉的情況下可以一直打開(kāi)

寫(xiě)文件

使用 r 方式打開(kāi)文件

# 使用 read 方式打開(kāi)文件,再進(jìn)行寫(xiě)操作  
f = open('d:/My Computer/text.txt','r')  
f.write('hello')  
f.close()

文件會(huì)拋出異常

使用 w 的方式打開(kāi)文件

# 使用 write 來(lái)實(shí)現(xiàn)寫(xiě)文件的操作  
# 使用 read 方式打開(kāi)文件,再進(jìn)行寫(xiě)操作  
f = open('d:/My Computer/text.txt','w')  
f.write('hello')  
f.close()  
f = open('d:/My Computer/text.txt','w')  
f.write('world')  
f.close()

  • 最后所打開(kāi)的文件中寫(xiě)入了‘ world
  • 如果使用 w 打開(kāi)文件之后,會(huì)清空原文件中的內(nèi)容,再進(jìn)行后續(xù)寫(xiě)操作

使用 a 的方式打開(kāi)文件

# 使用 read 方式打開(kāi)文件,再進(jìn)行寫(xiě)操作  
f = open('d:/My Computer/text.txt','w')  
f.write('hello')  
f.close()  
f = open('d:/My Computer/text.txt','a')  
f.write('world')  
f.close()

此時(shí)原有內(nèi)容不變,寫(xiě)入的內(nèi)容會(huì)存在于之前文件內(nèi)容的末尾(追加寫(xiě)

讀文件

中文和英文類似,在計(jì)算機(jī)中,都是使用“數(shù)字”來(lái)表示字符的。但具體是那個(gè)數(shù)字對(duì)應(yīng)哪個(gè)漢字是有多個(gè)版本的,主流的是:

  • GBK
  • UTF8
    在實(shí)際開(kāi)發(fā)的時(shí)候,就需要保證,文件內(nèi)容的編碼方式和代碼中操作文件的編碼方式是匹配的,所以需要再打開(kāi)文件的時(shí)候指定編碼方式

按字符數(shù)量讀取

# 按字符數(shù)量來(lái)讀取  
f = open('d:/My Computer/text.txt','r',encoding='utf8')  
result = f.read(5)  
print(result)  
f.close()
"""
運(yùn)行結(jié)果
床前明月光
"""

按行來(lái)讀取

最簡(jiǎn)單的方法,就是直接使用 for 循環(huán)

# 按行讀取  
f = open('d:/My Computer/text.txt','r',encoding='utf8')  
for line in f:  
    print(f'line = {line}')  
f.close()
"""
運(yùn)行結(jié)果
line = 床前明月光
line = 疑是地上霜
line = 舉頭望明月
line = 低頭思故鄉(xiāng)
"""
  • 之所以多了空行,是因?yàn)楸緛?lái)讀取到的文件內(nèi)容(這一行內(nèi)容,末尾就帶有 \n
  • 此處使用 print 打印,又會(huì)自動(dòng)添加換行的行為
  • 可以給 print 再多設(shè)定個(gè)參數(shù),修改 print 的自動(dòng)換行行為
# 按行讀取  
f = open('d:/My Computer/text.txt','r',encoding='utf8')  
for line in f:  
    print(f'line = {line}', end = '')  
f.close()
"""
運(yùn)行結(jié)果
line = 床前明月光
line = 疑是地上霜
line = 舉頭望明月
line = 低頭思故鄉(xiāng)
"""
  • end 參數(shù)就是表示每次打印之后要在末尾加個(gè)啥
    • 默認(rèn)是 \n
    • 修改成‘ ’,也就是什么都不加

直接讀取全部?jī)?nèi)容

使用 readlines 的方法,直接把整個(gè)文件所有的內(nèi)容都讀出來(lái),并且按照行組織到一個(gè)列表中

# 直接讀完所有內(nèi)容,并且按行進(jìn)行組織  
f = open('d:/My Computer/text.txt', 'r', encoding='utf8')  
lines = f.readlines()  
print(lines)  
f.close()
"""
運(yùn)行結(jié)果
['床前明月光\n', '疑是地上霜\n', '舉頭望明月\n', '低頭思故鄉(xiāng)']
"""
  • 一次全部讀完更省時(shí)間

上下文管理器

打開(kāi)文件之后, 是容易忘記關(guān)閉的,Python 提供了上下文管理器,來(lái)幫助程序猿自動(dòng)關(guān)閉文件

  • 使用 with 語(yǔ)句打開(kāi)文件
  • 當(dāng) with 內(nèi)部的代碼塊執(zhí)行完畢后,就會(huì)自動(dòng)調(diào)用關(guān)閉方法
with open('d:/My Computer/text.txt','r',encoding='utf8') as f:
	# 進(jìn)行文件處理的邏輯
  • 上下文管理器起到的效果
    • 當(dāng) with 對(duì)應(yīng)的代碼塊執(zhí)行結(jié)束后,就會(huì)自動(dòng)執(zhí)行 fclose
    • close 委托給了 with 來(lái)執(zhí)行,就不用擔(dān)心自己忘記 close

到此這篇關(guān)于Python 文件操作大全的文章就介紹到這了,更多相關(guān)Python 文件操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?并行加速技巧分享

    Python?并行加速技巧分享

    這篇文章主要介紹了Python?并行加速技巧分享,文章圍繞文章主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 解析ROC曲線繪制(python+sklearn+多分類)

    解析ROC曲線繪制(python+sklearn+多分類)

    這篇文章主要介紹了解析ROC曲線繪制(python+sklearn+多分類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python socket聊天腳本代碼實(shí)例

    Python socket聊天腳本代碼實(shí)例

    這篇文章主要介紹了Python socket聊天腳本代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python數(shù)據(jù)可視化詳解

    Python數(shù)據(jù)可視化詳解

    數(shù)據(jù)可視化是一種將龐雜抽象的數(shù)據(jù)轉(zhuǎn)化為直觀易懂的圖形的數(shù)據(jù)呈現(xiàn)技術(shù),它能幫助我們快速把握數(shù)據(jù)的分布和規(guī)律,更加輕松地理解和探索信息,本文通過(guò)代碼圖片詳細(xì)介紹了Python數(shù)據(jù)可視化,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • matplotlib 輸出保存指定尺寸的圖片方法

    matplotlib 輸出保存指定尺寸的圖片方法

    今天小編就為大家分享一篇matplotlib 輸出保存指定尺寸的圖片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python實(shí)現(xiàn)連通域標(biāo)記算法

    Python實(shí)現(xiàn)連通域標(biāo)記算法

    如果把圖像分為前景和背景兩部分,那么連通域就是連通在一起的前景,這種關(guān)系對(duì)于二值圖像來(lái)說(shuō)比較明顯,下面我們就來(lái)了解一下連通域標(biāo)記算法原理及其Python實(shí)現(xiàn)吧
    2023-12-12
  • python使用selenium操作瀏覽器的實(shí)現(xiàn)示例

    python使用selenium操作瀏覽器的實(shí)現(xiàn)示例

    Selenium是一個(gè)模擬瀏覽器瀏覽網(wǎng)頁(yè)的工具,主要用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,本文主要介紹了python使用selenium操作瀏覽器的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Python 中如何使用 virtualenv 管理虛擬環(huán)境

    Python 中如何使用 virtualenv 管理虛擬環(huán)境

    這篇文章主要介紹了Python 中使用 virtualenv 管理虛擬環(huán)境的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python pyecharts繪制柱狀圖

    Python pyecharts繪制柱狀圖

    這篇文章主要介紹了Python pyecharts繪制柱狀圖,文章介紹的柱狀/條形圖,通過(guò)柱形的高度/條形的寬度來(lái)表現(xiàn)數(shù)據(jù)的大小,感興趣的小伙伴一起進(jìn)入文章學(xué)習(xí)更詳細(xì)內(nèi)容吧
    2021-12-12
  • Python集合的增刪改查操作

    Python集合的增刪改查操作

    這篇文章主要介紹了Python集合的增刪改查操作,其增刪改查操作要看集合的類型來(lái)決定,不可變的數(shù)據(jù)當(dāng)然不能增刪改,只能查詢,可變集合則限制稍微少點(diǎn)。下面和小編一起進(jìn)放入文章了解更多相關(guān)內(nèi)容吧
    2022-03-03

最新評(píng)論