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

Python文件操作的方法

 更新時(shí)間:2021年12月21日 09:20:01   作者:J.FengS  
本文詳細(xì)講解了Python文件操作的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

目標(biāo):

  • 文件的概念
  • 文件的基本操作
  • 文件/文件夾的常用操作
  • 文本文件的編碼方式

1.文件的概念

1.1文件的概念和作用

計(jì)算機(jī)的文件,就是存儲(chǔ)在某種長(zhǎng)期存儲(chǔ)設(shè)備上的一段數(shù)據(jù)

長(zhǎng)期存儲(chǔ)設(shè)備包括:硬盤、U盤、移動(dòng)硬盤、光盤····

文件的作用:

將數(shù)據(jù)長(zhǎng)期存儲(chǔ)下來(lái),在需要的時(shí)候使用

1.2文件的存儲(chǔ)方式

  • 在計(jì)算機(jī)中,文件是以二進(jìn)制的方式保存在磁盤上的

文本文件和二進(jìn)制文件

  • 文本文件
    • 可以用文本編輯軟件查看
    • 本質(zhì)上還是二進(jìn)制
    • 例如:Python源文件
  • 二進(jìn)制文件
    • 保存的內(nèi)容不是給人直接閱讀的,而是提供給其他軟件使用的
    • 例如:圖片文件、音頻文件、視頻文件等等
    • 二進(jìn)制文件不能直接使用文本編輯器查看

2.文件的基本操作

2.1操作文件的套路

在計(jì)算機(jī)中,要操作文件的套路非常固定,一共包含三個(gè)步驟:

  • 打開文件
  • 讀、寫文件
    • 讀:將文件內(nèi)容讀入內(nèi)存
    • 寫:將內(nèi)存內(nèi)容寫入文件
  • 關(guān)閉文件

2.2操作文件的函數(shù)/方法

  • 在Python中操作文件需要記住1個(gè)函數(shù)和3個(gè)方法
序號(hào) 函數(shù)/方法 說(shuō)明
1 open 打開文件,并返回文件操作對(duì)象
2 read 將文件內(nèi)容讀取到內(nèi)存
3 write 將指定內(nèi)容寫入到文件
4 close 關(guān)閉文件
  • open() 函數(shù)負(fù)責(zé)打開文件,并返回文件對(duì)象
  • read/write/close三個(gè)方法都需要通過(guò)文件對(duì)象來(lái)調(diào)用

2.3read方法——讀取文件

  • open函數(shù)的第一個(gè)參數(shù),是被打開的文件名(文件名區(qū)分大小寫)
    • 如果文件存在,返回文件操作對(duì)象
    • 如果文件不存在,會(huì)拋出異常
  • read方法 可以一次性讀入并返回 文件的所有內(nèi)容
  • close方法 負(fù)責(zé)關(guān)閉文件
    • 如果忘記關(guān)閉文件,會(huì)造成系統(tǒng)資源消耗,而且會(huì)影響到后續(xù)對(duì)文件的訪問(wèn)
  • 注意:方法執(zhí)行后,會(huì)把文件指針移動(dòng)到文件的末尾
  • 提示:
    • 在開發(fā)中,通常先編寫打開和關(guān)閉的代碼,在編寫中間針對(duì)文件讀/寫操作!
#獲得文件操作對(duì)象(sis.txt文件)
file = open("sis.txt")
#讀取
text = file.read()
print(text)
#關(guān)閉文件
file.close()
'''
運(yùn)行結(jié)果
我是中文的哦
nidie中文
'''
  • 文件指針文件指針
  • 文件指針 標(biāo)記 從那個(gè)位置開始讀取數(shù)據(jù)
  • 第一次打開文件時(shí),通常文件指針會(huì)指向文件開始的位置
  • 當(dāng)執(zhí)行了read方法后,文件指針會(huì)移動(dòng)到讀取內(nèi)容的末尾
    • 默認(rèn)情況下會(huì)移動(dòng)到文件末尾
  • 思考:如果執(zhí)行了一次read方法,讀取了所有內(nèi)容,那么再次調(diào)用read方法還能獲取到內(nèi)容嗎?
    • 答案:不能。第一次讀取內(nèi)容后,文件指針移動(dòng)到文件末尾,再次調(diào)用不會(huì)讀取到任何內(nèi)容

文件指針演示

#獲得文件操作對(duì)象(sis.txt文件)
 file = open("sis.txt")
 #讀取
 text = file.read()
 #查看讀取文件的長(zhǎng)度  (14)
 print(len(text))
 #輸出讀取到的文件
 print(text)
 print("*"*30)
 #重新讀取文件
 text = file.read()
 print(text)         #  空
 print(len(text))    # (0)
 #關(guān)閉文件
 file.close()
 
 """
 運(yùn)行結(jié)果:
 14
 我是中文的哦
 nidie中文
 ******************************
 
 0
 """

2.4打開文件的方式

  • open函數(shù)默認(rèn)以只讀方式打開,并返回文件對(duì)象

語(yǔ)法如下:

f = open( " 文件名 " , " 訪問(wèn)方式 " )

提示:頻繁的移動(dòng)指針,會(huì)影響文件讀寫效率,開發(fā)中更多的時(shí)候會(huì)以 只讀、只寫 的方式來(lái)操作文件

2.5按行讀取文件內(nèi)容

  • read方法默認(rèn)會(huì)把文件的所有內(nèi)容一次性讀到內(nèi)存
  • 如果文件太大,對(duì)內(nèi)存的占用會(huì)非常嚴(yán)重

readline 方法:

  • 可以一次讀取一行內(nèi)容
  • 方法執(zhí)行后,會(huì)把指針移動(dòng)到下一行,準(zhǔn)備再次讀取

讀取大文件的正確姿勢(shì):

#打開文件
file = open("sis.txt")
while True:
    #讀取一行內(nèi)容
    text = file.readline()
    #判斷是否讀取到內(nèi)容
    if text == "":          #或者 if not text:
        print(type(text))   #<class 'str'>
        break
    #每讀取到末尾都會(huì)有一個(gè) \n
    print(text,end="")
"""
運(yùn)行結(jié)果:
python1一
python2二
python3三
python4四<class 'str'>
"""

2.6文件讀寫案例——復(fù)制文件

目標(biāo):用代碼實(shí)現(xiàn)文件的復(fù)制過(guò)程

小文件復(fù)制

打開一個(gè)已有文件,讀取完整內(nèi)容,并寫入到另一個(gè)文件

#復(fù)制小文件方式1
 file_read = open("sis.txt","r")
 file_write = open("test.txt","w")
 text_1 = file_read.read()
 text_2 = file_write.write(text_1)
 file_write.close()
 file_read.close()
 
 #復(fù)制小文件方式2 推薦(with關(guān)鍵字,會(huì)自動(dòng)釋放文件對(duì)象空間)
 test = None
 with open("sis.txt","r") as file:
     test = file.read()
 with open("test1.txt","w") as file:
     file.write(test)

大文件復(fù)制

打開一個(gè)已有文件,逐行讀取內(nèi)容,并順序?qū)懭氲搅硪粋€(gè)文件

#大文件復(fù)制
 file_read = open("五筆詞根1.jpg","rb")
 file_write = open("五筆詞根2.jpg","wb")
 while True:
     text = file_read.readline()
     #python中,除了‘'、""、0、()、[]、{}、None為False, 其他轉(zhuǎn)換都為True。 也就是說(shuō)字符串如果不為空,則永遠(yuǎn)轉(zhuǎn)換為True。
     if not text:
         break
     file_write.write(text)
 file_read.close()
 file_write.close()

2.7文件讀寫中的函數(shù)

文件讀取— Python 3.10.1 文檔

3.文件/目錄的常用管理操作

  • 在 終端/文件瀏覽 中可以執(zhí)行常規(guī)的 文件/目錄 管理操作,例如

創(chuàng)建、重命名、刪除、改變路勁、查看目錄內(nèi)容........

  • 在Python中如果希望通過(guò)程序?qū)崿F(xiàn)上述功能,需要導(dǎo)入 os 模塊

文件操作:

目錄操作:

提示:文件或者目錄操作,都支持相對(duì)路徑絕對(duì)路勁

4.文本文件的編碼方式

pass

# -*- coding: utf8 -*-

# -*- coding: utf-8 -*-

# -*- coding: gbk -*-

5.拓展:eval函數(shù)

eval函數(shù)功能非常強(qiáng)大——將字符串當(dāng)成有效的表達(dá)式來(lái)求值,并返回計(jì)算結(jié)果

# -*- coding: gbk -*-
#基本的數(shù)學(xué)計(jì)算
print(eval("1+1"))
#字符串重復(fù)
print(eval("'*'*30"))
#將字符串轉(zhuǎn)變成列表
print(type(eval("[1,2,3,4,5]")))
#將字符串轉(zhuǎn)變成元組
print(type(eval("(1,2,3,4,5)")))
#將字符串轉(zhuǎn)變成字典
print(type(eval("{'name':'蘋果','age':18}")))

案例——計(jì)算器

input_str = input("輸入算數(shù)題")
print(eval(input_str))
'''
運(yùn)行:
輸入算數(shù)題1+1
2
'''

注意:在開發(fā)的時(shí)候千萬(wàn)不要使用 eval 直接轉(zhuǎn)換 input 的結(jié)果

以上所述是小編給大家介紹的Python文件操作的方法,希望對(duì)大家有所幫助。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python神奇的內(nèi)置函數(shù)locals的實(shí)例講解

    Python神奇的內(nèi)置函數(shù)locals的實(shí)例講解

    今天小編就為大家分享一篇關(guān)于Python神奇的內(nèi)置函數(shù)locals的實(shí)例講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • python使用技巧-查找文件?

    python使用技巧-查找文件?

    這篇文章主要分享的是python使用技巧查找文件,下面我們就來(lái)介紹針對(duì)python查找文件的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • PyCharm中配置PySide2的圖文教程

    PyCharm中配置PySide2的圖文教程

    這篇文章主要介紹了PyCharm中配置PySide2的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 對(duì)Keras自帶Loss Function的深入研究

    對(duì)Keras自帶Loss Function的深入研究

    這篇文章主要介紹了對(duì)Keras自帶Loss Function的深入研究,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python中的deque基本用法詳解

    python中的deque基本用法詳解

    Python?中的?deque是一個(gè)低級(jí)別的、高度優(yōu)化的雙端隊(duì)列,對(duì)于實(shí)現(xiàn)優(yōu)雅、高效的Pythonic隊(duì)列和堆棧很有用,這篇文章主要介紹了python中的deque基本用法的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解

    Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解

    這篇文章主要介紹了Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python多線程 Queue 模塊常見用法

    Python多線程 Queue 模塊常見用法

    Python的Queue模塊提供一種適用于多線程編程的FIFO實(shí)現(xiàn)。它可用于在生產(chǎn)者(producer)和消費(fèi)者(consumer)之間線程安全(thread-safe)地傳遞消息或其它數(shù)據(jù),因此多個(gè)線程可以共用同一個(gè)Queue實(shí)例。Queue的大小(元素的個(gè)數(shù))可用來(lái)限制內(nèi)存的使用
    2021-07-07
  • Python?pickle模塊實(shí)現(xiàn)Python對(duì)象持久化存儲(chǔ)

    Python?pickle模塊實(shí)現(xiàn)Python對(duì)象持久化存儲(chǔ)

    這篇文章主要介紹了Python?pickle模塊實(shí)現(xiàn)Python對(duì)象持久化存儲(chǔ),pickle?是?python?語(yǔ)言的一個(gè)標(biāo)準(zhǔn)模塊,和python安裝時(shí)共同安裝好的一個(gè)模塊。下文基于pickle模塊展開實(shí)現(xiàn)Python對(duì)象持久化存儲(chǔ)的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-05-05
  • Python-OpenCV實(shí)現(xiàn)圖像缺陷檢測(cè)的實(shí)例

    Python-OpenCV實(shí)現(xiàn)圖像缺陷檢測(cè)的實(shí)例

    本文將結(jié)合實(shí)例代碼,在Jupyter Notebook上使用Python+opencv實(shí)現(xiàn)如下圖像缺陷檢測(cè)。需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 基于python if 判斷選擇結(jié)構(gòu)的實(shí)例詳解

    基于python if 判斷選擇結(jié)構(gòu)的實(shí)例詳解

    代碼執(zhí)行結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這篇文章主要介紹了python if 判斷選擇結(jié)構(gòu)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05

最新評(píng)論

南京市| 习水县| 海林市| 桓台县| 曲松县| 定边县| 农安县| 奉新县| 临澧县| 浦县| 南郑县| 新和县| 勃利县| 高雄县| 宝鸡市| 攀枝花市| 调兵山市| 华池县| 巫溪县| 桂阳县| 中牟县| 克山县| 阿拉尔市| 封开县| 浦东新区| 昆明市| 上饶县| 新河县| 祥云县| 峡江县| 柯坪县| 岳西县| 玉溪市| 延边| 新野县| 大荔县| 黄骅市| 仁怀市| 嘉峪关市| 九台市| 吉林市|