亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談PYTHON 關(guān)于文件的操作

 更新時(shí)間:2019年03月19日 08:47:24   作者:Yang-hao  
這篇文章主要介紹了PYTHON 關(guān)于文件的操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.打開(kāi)文件:

f=open(r'E:\PythonProjects\test7\a.txt',mode='rt',encoding='utf-8')
以上三個(gè)單引號(hào)內(nèi)分別表示:要打開(kāi)的文件的路徑,mode為文件打開(kāi)方式具體介紹在下文,encoding為文件的字符編碼,一般默認(rèn)為utf-8

2.讀寫(xiě)文件:

data=f.read()  # 讀文件

f.write()    # 寫(xiě)文件

3.關(guān)閉文件:

f.close()

4.為了簡(jiǎn)便,一般采用上下文的方法進(jìn)行文件操作,可不用關(guān)閉文件

 with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
 print(data)
with open('a.txt',mode='wt',encoding='utf-8') as f:
 f.write('hello world')

5.控制文件讀寫(xiě)的操作:

r:(默認(rèn)模式):只讀:以該模式打開(kāi)文件時(shí),若文件不存在則報(bào)錯(cuò),若文件存在,則文件指針在文件開(kāi)頭,即從文件開(kāi)頭開(kāi)始讀文件
w:只寫(xiě):以該模式打開(kāi)文件時(shí),若文件不存在則創(chuàng)建一個(gè)文件,如文件存在,則清空文件內(nèi)容,文件指針移到開(kāi)頭
a:追加寫(xiě):以該模式打開(kāi)文件時(shí),若文件不存在則創(chuàng)建一個(gè)文件,如文件存在,則將文件指針移到文件末尾,在文件末尾寫(xiě)入新的內(nèi)容

6.控制文件讀寫(xiě)內(nèi)容的模式:(t 和 b都不能單獨(dú)使用,必須與r,w,a結(jié)合使用)

t:(默認(rèn)):無(wú)論讀寫(xiě)都是以字符為單位,只能識(shí)別文本文件,必須要制定encoding
b:無(wú)論讀寫(xiě)都是以字節(jié)為單位,可以識(shí)別所有文件,一定不能指定encoding

7.文件的拷貝

with open ('a.txt',mode='rb') as af,\
 open('b.txt',mode='wb') as bf:
 data=af.read
 f.write(data) 

執(zhí)行程序后,打開(kāi)文件,即可發(fā)現(xiàn)文件已成功拷貝,這里使用 b 而不是用 t 模式,是因?yàn)槲募卸喾N格式

8.文件的修改:

文件的修改是在硬盤(pán)上實(shí)現(xiàn)文件的覆蓋,相當(dāng)于一個(gè)新的文件以舊的文件名來(lái)命名的; 文件的修改有倆種方式,分別適用于不同的情景

方式一(適用于容量小的文件):這種方式的原理是:創(chuàng)建一個(gè)新的文件,將舊文件的內(nèi)容拷貝到新的文件中;這樣內(nèi)存里就存在倆個(gè)文件,故不適用于容量大的文件,具體代碼見(jiàn)下方 View

with open('a.txt',mode='rt',encoding='utf-8') as f:
 data=f.read()
 data_new=data.replace('yang', 'yv')
with open('b.txt',mode='wt',encoding='utf-8')as p:
 p.write(data_new)

方式二(適用于容量大的文件):此方式的原理為:讀取舊文件的一行內(nèi)容,修改后寫(xiě)到臨時(shí)文件中,循環(huán)往復(fù)直到寫(xiě)完,然后將源文件刪除,將臨時(shí)文件命名為源文件名.這種方式在內(nèi)存中只存在2行文件,節(jié)省內(nèi)存,可用于大文件

import os
with open('b.txt',mode='rt',encoding='utf-8') as f,\
 open('.b.txt.swap',mode='wt',encoding='utf-8') as p:
 for line in f:
 p.write(line.replace('yv','yang')) 
 # 調(diào)用replace方法,將源文件中的'yv',換成'yang'
os.remove('b.txt')
os.rename('.b.txt.swap','b.txt')

9. 文件的階段:truncate(n)

將文件中n個(gè)字節(jié)后內(nèi)容全刪了,當(dāng) n 不存在時(shí),即刪除文件全部?jī)?nèi)容

10.文件內(nèi)指針的移動(dòng)

f.seek():  指針的移動(dòng)是以字節(jié)為單位的
seek 有三種模式:

0:(默認(rèn)模式) 指針在文件開(kāi)頭,只有在 0 模式可以在 t 模式下用,也可以在 b 模式下用,而 1 ,2 模式只能在 b 模式下使用
1:指針在當(dāng)前位置
2:指針在文件末尾

以下為具體事例:

# 0
with open('a.txt',mode='rt',encoding='utf-8')as f:
 f.seek(3,0)
 print(f.tell()) # 指針當(dāng)前位置
 print(f.read()) # 從指針后讀出所有內(nèi)容

# 1 參照指針當(dāng)前位置
 with open('a.txt',mode='rb')as f:
 f.read(2)
 f.seek(4,1)
 print(f.tell())
 print(f.read().decode('utf-8'))

# 2 參照文件末尾
 with open('a.txt',mode='rb')as f:
 f.seek(-5,2)
 print(f.tell())
 print(f.read().decode('utf-8'))

當(dāng) seek處于 2 模式時(shí),可以將文件中新加入的內(nèi)容打印出來(lái),具體代碼如下:

# 另一個(gè)文件進(jìn)行寫(xiě)操作,寫(xiě)的代碼如下:

with open('a.txt',mode='at',encoding='utf-8')as f:
 f.write('hello world\n')


# 每在文件中寫(xiě)入新的內(nèi)容,都打印出來(lái),以下代碼執(zhí)行打印操作:
import time
with open('a.txt',mode='rb')as f:
 f.seek(0,2)
 while True:
 line=f.readline() # readline 可以讀取沒(méi)有內(nèi)容的部分
 # print(line.decode('utf-8'))
 if len(line)==0:
 time.sleep(0.1)
 else:
 print(line.decode('utf-8'))

以上所述是小編給大家介紹的PYTHON 關(guān)于文件的操作詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 在?Python?中如何將天數(shù)添加到日期

    在?Python?中如何將天數(shù)添加到日期

    這篇文章主要介紹了在?Python?中將天數(shù)添加到日期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Django restframework 源碼分析之認(rèn)證詳解

    Django restframework 源碼分析之認(rèn)證詳解

    這篇文章主要介紹了Django-restframework 源碼分析之認(rèn)證詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • TensorFlow固化模型的實(shí)現(xiàn)操作

    TensorFlow固化模型的實(shí)現(xiàn)操作

    這篇文章主要介紹了TensorFlow固化模型的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 6個(gè)Python辦公黑科技,助你提升工作效率

    6個(gè)Python辦公黑科技,助你提升工作效率

    這篇文章主要介紹了Python辦公黑科技,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-08-08
  • python 實(shí)現(xiàn)敏感詞過(guò)濾的方法

    python 實(shí)現(xiàn)敏感詞過(guò)濾的方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)敏感詞過(guò)濾的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python上級(jí)目錄文件導(dǎo)入的幾種方法(from.import)

    Python上級(jí)目錄文件導(dǎo)入的幾種方法(from.import)

    有時(shí)候我們可能需要import另一個(gè)路徑下的python文件,下面這篇文章主要給大家介紹了關(guān)于Python上級(jí)目錄文件導(dǎo)入的幾種方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后自動(dòng)重新運(yùn)行進(jìn)程的示例

    Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后自動(dòng)重新運(yùn)行進(jìn)程的示例

    要實(shí)現(xiàn)Python程序在被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后能夠自動(dòng)重新運(yùn)行,我們可以采用幾種方法,但最直接且常用的方法之一是結(jié)合操作系統(tǒng)級(jí)的工具或腳本,這篇文章主要介紹了Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后怎么自動(dòng)重新運(yùn)行進(jìn)程,需要的朋友可以參考下
    2024-08-08
  • python flask搭建web應(yīng)用教程

    python flask搭建web應(yīng)用教程

    今天小編就為大家分享一篇python flask搭建web應(yīng)用教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python使用yaml模塊操作YAML文檔的方法

    Python使用yaml模塊操作YAML文檔的方法

    YAML是可讀性高,用來(lái)表達(dá)數(shù)據(jù)序列化格式的,專用于寫(xiě)配置文件的語(yǔ)言,這篇文章主要介紹了Python使用yaml模塊操作YAML文檔,需要的朋友可以參考下
    2023-01-01
  • Python實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)

    Python實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論