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

用python實(shí)現(xiàn)文件備份

 更新時(shí)間:2022年01月29日 08:34:37   作者:繁華似錦Fighting  
大家好,本篇文章主要講的是用python實(shí)現(xiàn)文件備份,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

1、需求

用戶輸入當(dāng)前目錄下任意文件名,程序完成對(duì)該文件的備份功能。

備份文件名為xx[備份]后綴,例如:test[備份].txt。

2、步驟

接收用戶輸入的文件名。規(guī)劃備份文件名。備份文件寫入數(shù)據(jù)。

3、代碼實(shí)現(xiàn)

(1)接收用戶輸入目標(biāo)文件名

old_name = input('請(qǐng)輸入您要備份的文件名:')

(2)規(guī)劃備份文件名

2.1 提取目標(biāo)文件后綴。
2.2 組織備份的文件名,xx[備份]后綴。

# 2.1 提取文件后綴點(diǎn)的下標(biāo)
index = old_name.rfind('.')

# 2.2 組織新文件名 舊文件名 + [備份] + 后綴
new_name = old_name[:index] + '[備份]' + old_name[index:]

(3)備份文件寫入數(shù)據(jù)

3.1 打開(kāi)源文件 和 備份文件。
3.2 將源文件數(shù)據(jù)寫入備份文件。
3.3 關(guān)閉文件。

# 3.1 打開(kāi)文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 將源文件數(shù)據(jù)寫入備份文件
# 如果不確定目標(biāo)文件大小,循環(huán)讀取寫入,
# 當(dāng)讀取出來(lái)的數(shù)據(jù)沒(méi)有了終止循環(huán)
while True:
    # 每次在原文件中讀取的內(nèi)容
    con = old_f.read(1024)
    # 表示讀取完成了
    if len(con) == 0:
        # 終止讀取
        break

    # 新文件寫入讀取的數(shù)據(jù)
    new_f.write(con)

# 3.3 關(guān)閉文件
old_f.close()
new_f.close()

(4)思考

如果用戶輸入.txt,這是一個(gè)無(wú)效文件,程序如何更改才能限制只有有效的文件名才能備份?

答:添加條件判斷即可。

# 有文件名,才能提取后綴
# 這里無(wú)法取得后綴,拼接的時(shí)候沒(méi)有后綴的變量
# 就會(huì)報(bào)錯(cuò)
if index > 0:
    postfix = old_name[index:]

(5)完整編碼

1)傳統(tǒng)實(shí)現(xiàn)

# 1. 用戶輸入目標(biāo)文件  如:sound.txt.mp3
old_name = input('請(qǐng)輸入您要備份的文件名:')

# 2. 規(guī)劃備份文件的名字
# 2.1 提取后綴 --
# 找到名字中的最右側(cè)的點(diǎn)才是后綴的點(diǎn)
# 在右側(cè)查找rfind()方法
# 獲取文件全名中后綴.的位置
index = old_name.rfind('.')


# 4. 思考:有效文件才備份 .txt
if index > 0:
    # 提取后綴,這里提取不到,后面拼接新文件名字的時(shí)候就會(huì)報(bào)錯(cuò)
    postfix = old_name[index:]

# 2.2 組織新名字 = 原名字 + [備份] + 后綴
# 原名字就是字符串中的一部分子串 -- 切片[開(kāi)始:結(jié)束:步長(zhǎng)]
# new_name = old_name[:index] + '[備份]' + old_name[index:]
new_name = old_name[:index] + '[備份]' + postfix


# 3. 備份文件寫入數(shù)據(jù)(數(shù)據(jù)和原文件一樣)
# 3.1 打開(kāi) 原文件 和 備份文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 原文件讀取,備份文件寫入
# 如果不確定目標(biāo)文件大小,循環(huán)讀取寫入,當(dāng)讀取出來(lái)的數(shù)據(jù)沒(méi)有了終止循環(huán)
while True:
    # 每次在原文件中讀取的內(nèi)容
    con = old_f.read(1024)
    # 表示讀取完成了
    if len(con) == 0:
        # 終止讀取
        break

    # 新文件寫入讀取的數(shù)據(jù)
    new_f.write(con)

# 3.3 關(guān)閉文件
old_f.close()
new_f.close()

2)實(shí)際工作實(shí)現(xiàn)

# 1. 用戶輸入目標(biāo)文件  如:sound.txt.mp3
old_name = input('請(qǐng)輸入您要備份的文件名:')

# 獲取文件全名中后綴.的位置
index = old_name.rfind('.')

# 4.有效文件才備份 .txt
if index > 0:
    postfix = old_name[index:]

# 3.開(kāi)始備份文件
# 打開(kāi)原文件
with open(old_name , 'rb') as file_obj:
    # 組織新名字 = 原名字 + [備份] + 后綴
    new_name = old_name[:index] + '[備份]' + postfix

    # 創(chuàng)建并打開(kāi)新文件
    with open(new_name, 'wb') as new_obj:
        # 定義每次讀取的大小
        chunk = 1024 * 100

        while True:
            # 從已有的對(duì)象中讀取數(shù)據(jù)
            content = file_obj.read(chunk)

            # 內(nèi)容讀取完畢,終止循環(huán)
            if not content:
                break

            # 將讀取到的數(shù)據(jù)寫入到新對(duì)象中
            new_obj.write(content)

兩種方式實(shí)現(xiàn)的功能一樣。

4、再來(lái)一個(gè)小練習(xí)

需求:二進(jìn)制文件讀?。▽?shí)現(xiàn)方式和上邊一樣)

# 讀取模式
# t 讀取文本文件(默認(rèn)值)
# b 讀取二進(jìn)制文件

file_name = “hello.txt”

with open(file_name , 'rb') as file_obj:
    # 讀取文本文件時(shí),size是以字符為單位的
    # 讀取二進(jìn)制文件時(shí),size是以字節(jié)為單位
    # print(file_obj.read(100))

    # 將讀取到的內(nèi)容寫出來(lái)
    # 定義一個(gè)新的文件
    new_name = 'aa.txt'

    with open(new_name , 'wb') as new_obj:

        # 定義每次讀取的大小
        chunk = 1024 * 100

        while True :
            # 從已有的對(duì)象中讀取數(shù)據(jù)
            content = file_obj.read(chunk)

            # 內(nèi)容讀取完畢,終止循環(huán)
            if not content :
                break

            # 將讀取到的數(shù)據(jù)寫入到新對(duì)象中
            new_obj.write(content)

注意:純文本文件也可以使用二進(jìn)制方法進(jìn)行讀取操作。

總結(jié)

到此這篇關(guān)于用python實(shí)現(xiàn)文件備份的文章就介紹到這了,更多相關(guān)python文件備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中uuid模塊生成唯一標(biāo)識(shí)符的方法詳解

    Python中uuid模塊生成唯一標(biāo)識(shí)符的方法詳解

    這篇文章主要給大家介紹了關(guān)于Python中uuid模塊生成唯一標(biāo)識(shí)符的相關(guān)資料,uuid庫(kù)是Python標(biāo)準(zhǔn)庫(kù)中的一個(gè)功能強(qiáng)大的庫(kù),可以用于生成全局唯一標(biāo)識(shí)符(UUID),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 在PyCharm中找不到Conda創(chuàng)建的環(huán)境的解決方法

    在PyCharm中找不到Conda創(chuàng)建的環(huán)境的解決方法

    本文主要介紹了在PyCharm中找不到Conda創(chuàng)建的環(huán)境的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 基于python詳解PyScript到底是什么

    基于python詳解PyScript到底是什么

    這篇文章主要介紹了基于python詳解PyScript到底是什么?文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的朋友可以參考一下下面文章內(nèi)容
    2022-06-06
  • pytorch查看模型weight與grad方式

    pytorch查看模型weight與grad方式

    這篇文章主要介紹了pytorch查看模型weight與grad方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python利用pandas對(duì)數(shù)據(jù)進(jìn)行特定排序

    Python利用pandas對(duì)數(shù)據(jù)進(jìn)行特定排序

    本文主要介紹了Python利用pandas對(duì)數(shù)據(jù)進(jìn)行特定排序,主要使用?pandas.DataFrame.sort_values?方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • opencv調(diào)整圖像亮度對(duì)比度的示例代碼

    opencv調(diào)整圖像亮度對(duì)比度的示例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了opencv調(diào)整圖像亮度對(duì)比度,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解Python中openpyxl模塊基本用法

    詳解Python中openpyxl模塊基本用法

    這篇文章主要介紹了Python中openpyxl模塊基本用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 淺談pycharm出現(xiàn)卡頓的解決方法

    淺談pycharm出現(xiàn)卡頓的解決方法

    今天小編就為大家分享一篇淺談pycharm出現(xiàn)卡頓的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 關(guān)于win10在tensorflow的安裝及在pycharm中運(yùn)行步驟詳解

    關(guān)于win10在tensorflow的安裝及在pycharm中運(yùn)行步驟詳解

    這篇文章主要介紹了關(guān)于win10在tensorflow的安裝及在pycharm中運(yùn)行的步驟詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python如何判斷數(shù)獨(dú)是否合法

    Python如何判斷數(shù)獨(dú)是否合法

    這篇文章給大家介紹了如何利用Python判斷數(shù)獨(dú)是否合法,對(duì)大家學(xué)習(xí)python有一定的參考借鑒價(jià)值,有需要的可以一起來(lái)看看。
    2016-09-09

最新評(píng)論

锡林郭勒盟| 临泉县| 庆云县| 临桂县| 道真| 平南县| 曲靖市| 垫江县| 宜兴市| 木兰县| 陈巴尔虎旗| 安多县| 乐至县| 密云县| 五家渠市| 方山县| 习水县| 高台县| 泸西县| 隆安县| 东莞市| 尤溪县| 通辽市| 平果县| 花莲市| 涪陵区| 宣化县| 抚州市| 股票| 开封市| 清水河县| 马山县| 榆林市| 渑池县| 永宁县| 醴陵市| 迁安市| 满洲里市| 石渠县| 江川县| 温泉县|