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

Python 文件操作大全

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

打開文件

在讀寫文件前需要先打開文件

open 打開一個文件

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

關(guān)閉文件

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

f.close()

文件打開的上限

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

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

寫文件

使用 r 方式打開文件

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

文件會拋出異常

使用 w 的方式打開文件

# 使用 write 來實現(xiàn)寫文件的操作  
# 使用 read 方式打開文件,再進(jìn)行寫操作  
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()

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

使用 a 的方式打開文件

# 使用 read 方式打開文件,再進(jìn)行寫操作  
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()

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

讀文件

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

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

按字符數(shù)量讀取

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

按行來讀取

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

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

直接讀取全部內(nèi)容

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

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

上下文管理器

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

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

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

相關(guān)文章

  • Python?并行加速技巧分享

    Python?并行加速技巧分享

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

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

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

    Python socket聊天腳本代碼實例

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

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

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

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

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

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

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

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

    Selenium是一個模擬瀏覽器瀏覽網(wǎng)頁的工具,主要用于測試網(wǎng)站的自動化測試工具,本文主要介紹了python使用selenium操作瀏覽器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    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繪制柱狀圖,文章介紹的柱狀/條形圖,通過柱形的高度/條形的寬度來表現(xiàn)數(shù)據(jù)的大小,感興趣的小伙伴一起進(jìn)入文章學(xué)習(xí)更詳細(xì)內(nèi)容吧
    2021-12-12
  • Python集合的增刪改查操作

    Python集合的增刪改查操作

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

最新評論

东辽县| 长岭县| 江口县| 习水县| 抚州市| 临桂县| 毕节市| 饶阳县| 太康县| 个旧市| 法库县| 鹿泉市| 南汇区| 梧州市| 定西市| 许昌市| 云梦县| 桂林市| 盘锦市| 平阳县| 射阳县| 喀什市| 广丰县| 罗江县| 瓦房店市| 岳池县| 五大连池市| 泸水县| 理塘县| 华容县| 北碚区| 清水县| 韩城市| 泸州市| 淮安市| 黄浦区| 突泉县| 柳林县| 九龙县| 司法| 宕昌县|