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

python必學(xué)知識(shí)之文件操作(建議收藏)

 更新時(shí)間:2021年05月30日 10:15:53   作者:神的孩子都在歌唱  
python中對(duì)文件、文件夾(文件操作函數(shù))的操作需要涉及到os模塊和shutil模塊。下面這篇文章主要給大家介紹了關(guān)于python必學(xué)知識(shí)之文件操作的相關(guān)資料,需要的朋友可以參考下

一.文件基本操作

1.1 文件打開和關(guān)閉

  1. open(‘文件名稱','打開模式')
  2. 模式:r(只讀,指針再頭) w(只寫,存在覆蓋,不存創(chuàng)新) a(追加) b(二進(jìn)制格式)
  3. close() 方法關(guān)閉文件
f=open('text.txt','w')#創(chuàng)建text.txt文件,用f來指代
f.close()#關(guān)閉文件

注意: 打開一個(gè)文件之后,一定要關(guān)閉,否則后面無法繼續(xù)操作這個(gè)文件

with 上下文管理,不管在處理文件過程中是否發(fā)生異常,都能保證 with 語句執(zhí)行完畢后已經(jīng)關(guān)閉打開的文件句柄。

def main():
    with open('text.txt','w+') as f:
        content=f.read()#讀取文件寫入內(nèi)容
        print(content)#輸出
main()#輸出完成后會(huì)自動(dòng)關(guān)閉文件

錯(cuò)誤:如果報(bào)錯(cuò)io.UnsupportedOperation: not readable

因?yàn)槟闶怯?code>open打開一個(gè)文件,此時(shí)調(diào)用的是w寫入模式,下面使用read是沒有權(quán)限的,你得使用w+讀寫模式

在這里插入圖片描述

1.2 讀/寫文件

1.2.1 寫文件

寫文件 write默認(rèn)的編碼是gbk 這個(gè)是中文編碼,最好的習(xí)慣呢就是我們?cè)?strong>打開一個(gè)文件的時(shí)候給它指定一個(gè)編碼類型encoding,要不然會(huì)出現(xiàn)亂碼

f=open('text.txt','w',encoding='utf-8')#w為寫入模式
f.write('人生苦短,我用python')#寫入文件text.txt
f.close()

#writelines()可傳一個(gè)可迭代對(duì)象
f=open('text.txt','a',encoding='utf-8')#a為追加模式

他會(huì)自動(dòng)生成text文件然后寫入

在這里插入圖片描述

writelines 方法將可迭代對(duì)象,迭代寫入文件

f.write('\r\n')
f.writelines(['人生','就是','不斷的學(xué)習(xí)'])
print('\n')
f.close()

在這里插入圖片描述

1.2.2 讀文件

 read(num):傳入一個(gè)數(shù)字做參數(shù),表示讀取指定字符個(gè)數(shù)。列:read(1)
readlines() :按行讀取,一次性讀取所有內(nèi)容,返回一個(gè)列表,每一行內(nèi)容作為一個(gè)元素。
readline() :按行讀取,但是一次只讀取一行。

#讀取文件
f=open('text.txt','r',encoding='utf-8')#只讀模式
print(f.read())#全部讀取輸出
f.close()

注意:出現(xiàn)UnicodeDecodeError: ‘gbk' codec can't decode byte 0xad in position 52: illegal multibyte sequence錯(cuò)誤

解決:open中加入encoding=‘utf-8'就行

二. 文件備份腳本

利用腳本完成自動(dòng)備份,要求用戶輸入文件名稱,完成自動(dòng)備份

def copyfile():
    #接收輸入的文件
    old_file=input('請(qǐng)輸入要備份的文件:')
    file_list=old_file.split(".")#split()函數(shù)通過指定分隔符對(duì)字符串進(jìn)行切片,假設(shè)要備份text.txt文件,輸出是['text', 'txt']
    new_file=file_list[0]+'_備份.'+file_list[1]#構(gòu)造新的文件名,加上備份后綴
    old_f=open(old_file,'r')#只讀模式打開備份的文件
    new_f=open(new_file,'w')#只寫模式打開新文件,不存在則創(chuàng)建
    new_f.write(old_f.read())#將備份文件內(nèi)容讀取出來寫入新文件
    #關(guān)閉所有打開文件
    old_f.close()
    new_f.close()
copyfile()#到時(shí)候文件夾里面會(huì)出現(xiàn)一個(gè)text_備份.txt的文件,內(nèi)容和備份文件一樣

在這里插入圖片描述

如果處理超大文件,一次將全部內(nèi)容讀取出來顯然是不合適的,在上面代碼的基礎(chǔ)上改進(jìn)下代碼,讓它備份大文件也不會(huì)導(dǎo)致內(nèi)存被占滿。

def copyfile2():
    #接收輸入的文件
    old_file=input('輸入要備份的文件')
    #如果沒有輸入或者輸入錯(cuò)誤就提示
    if not old_file:
        print('輸入錯(cuò)誤')
        old_file = input('輸入要備份的文件:')
    else:
         file_list=old_file.split(".")
         print(file_list)
    #創(chuàng)造新的文件名,加上備份后綴
    if len(file_list)<2:#如果列表長度小于2,就不用加.
        new_file=file_list[0]+'_備份2'
        pass
    else:#文件有后綴的情況
        new_file=file_list[0]+'_備份2.'+file_list[1]
    #用異常處理判斷內(nèi)存是否被占滿
    try:
        #同時(shí)打開需要備份的文件,新文件
        with open(old_file,'r') as old_f, open(new_file,'a')  as  new_f:
            while True:
                content=old_f.read(2048)#一次讀取2048個(gè)字符
                new_f.write(content)#寫入
                #當(dāng)讀取的內(nèi)容字符長度小于2048是說明讀取完畢
                if len(content)<2048:
                    break#跳出循環(huán)
    except Exception as e:
        print(e)#如果內(nèi)存滿無法讀取了,就拋出異常
copyfile2()#到時(shí)候文件夾里面會(huì)出現(xiàn)一個(gè)text_備份2.txt的文件,內(nèi)容和備份文件一樣

備份了text.txt

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • 實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    SocketServer模塊中帶有很多實(shí)現(xiàn)服務(wù)器所能夠用到的socket類和操作方法,下面我們就來以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法:
    2016-06-06
  • 詳解Python中matplotlib模塊的繪圖方式

    詳解Python中matplotlib模塊的繪圖方式

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是?Python常用的2D繪圖庫,同時(shí)它也提供了一部分3D繪圖接口。本文將詳細(xì)介紹Matplotlib的繪圖方式,需要的可以參考一下
    2022-07-07
  • 學(xué)習(xí)python如何處理需要登錄的網(wǎng)站步驟

    學(xué)習(xí)python如何處理需要登錄的網(wǎng)站步驟

    這篇文章主要為大家介紹了python如何處理需要登錄的網(wǎng)站步驟學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • python無法識(shí)別vim中文代碼的解決方案

    python無法識(shí)別vim中文代碼的解決方案

    這篇文章主要介紹了python無法識(shí)別vim中文代碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python Pycurl的屬性與方法案例詳解

    Python Pycurl的屬性與方法案例詳解

    這篇文章主要介紹了Python Pycurl的屬性與方法案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • python和php學(xué)習(xí)哪個(gè)更有發(fā)展

    python和php學(xué)習(xí)哪個(gè)更有發(fā)展

    在本篇內(nèi)容里小編給大家分析了關(guān)于python和php學(xué)習(xí)哪個(gè)更有發(fā)展相關(guān)論點(diǎn),有興趣的朋友們參考下。
    2020-06-06
  • Pyorch之numpy與torch之間相互轉(zhuǎn)換方式

    Pyorch之numpy與torch之間相互轉(zhuǎn)換方式

    今天小編就為大家分享一篇Pyorch之numpy與torch之間相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python requests庫用法實(shí)例詳解

    Python requests庫用法實(shí)例詳解

    這篇文章主要介紹了Python requests庫用法,結(jié)合實(shí)例形式分析了Request庫的功能、安裝、請(qǐng)求創(chuàng)建、響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python?JSON數(shù)據(jù)解析過程(最新推薦)

    Python?JSON數(shù)據(jù)解析過程(最新推薦)

    json模塊提供了將JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對(duì)象(如列表、字典等)以及將Python對(duì)象轉(zhuǎn)換為JSON格式的數(shù)據(jù)的方法,下面給大家分享使用json模塊解析JSON數(shù)據(jù)的常見方法,感興趣的朋友一起看看吧
    2024-02-02
  • python編程PyAutoGUI庫使用與安裝簡(jiǎn)介

    python編程PyAutoGUI庫使用與安裝簡(jiǎn)介

    這篇文章主要為大家介紹了python編程中PyAutoGUI庫的使用與安裝簡(jiǎn)單介紹,文中含有視頻詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10

最新評(píng)論

凤山市| 哈尔滨市| 托克逊县| 九台市| 泌阳县| 庆阳市| 沿河| 思南县| 恭城| 大丰市| 三台县| 五峰| 土默特右旗| 浮梁县| 南郑县| 巴马| 定州市| 兰坪| 英吉沙县| 自治县| 新田县| 舟曲县| 南宁市| 大悟县| 溧水县| 萨迦县| 九江市| 辛集市| 化德县| 黄大仙区| 郁南县| 磴口县| 花垣县| 昌吉市| 大庆市| 贞丰县| 潍坊市| 正安县| 黄大仙区| 嘉善县| 文昌市|