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

Python實(shí)現(xiàn)Windows環(huán)境下自動(dòng)備份文件到遠(yuǎn)程目錄

 更新時(shí)間:2026年02月09日 09:22:23   作者:清山博客  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)Windows環(huán)境下自動(dòng)備份文件到遠(yuǎn)程目錄,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

每逢節(jié)假日,公司要求備份一次源碼到共享目錄。于是寫了一個(gè)腳本,用來自動(dòng)備份。

工作原理:

1.使用python的os.walk方法,遍歷需要備份的目錄文件。

2.使用python的zipfile模塊,將文件夾打包成zip壓縮包。

import zipfile
import os
from datetime import datetime

# 壓縮文件夾到指定路徑
def compress_directory(directory_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(directory_path):
            for file in files:
                file_path = os.path.join(root, file)
                if file_path.find(".git") > -1:
                    zipf.write(file_path, arcname=os.path.relpath(
                        file_path, directory_path))


if __name__ == '__main__':
    # 源碼目錄
    dirPath = "E:\\Git"

    # 備份目錄(存放壓縮文件)
    toPath = '\\\\192.168.*.*\\源碼備份\\2024-04-03\\'

    if not os.path.exists(toPath):
        os.makedirs(toPath)

    dirs = {}
    for file in os.listdir(dirPath):
        file_path = os.path.join(dirPath, file)
        # 條件篩選
        if os.path.isdir(file_path) and file_path.find("[自定義過濾條件]") > -1:
            dirs[file] = file_path

    print("開始備份源碼,共"+str(len(dirs))+"個(gè)目錄")
    i = 0
    for key, val in dirs.items():
        i = i+1
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") +" 正在備份("+str(i)+"/"+str(len(dirs)) + "):"+val)
        compress_directory(val, os.path.join(toPath, key+".zip"))
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") +" 備份完畢("+str(i)+"/"+str(len(dirs)) + "):"+val)

注意,請(qǐng)將文中的 dirPath、toPath 替換為你實(shí)際的路徑,路徑"\"需轉(zhuǎn)義"\\"。

# 源碼目錄
 dirPath = "E:\\Git"
# 備份目錄(存放壓縮文件)
 toPath = '\\\\192.168.*.*\\源碼備份\\2024-04-03\\'
#[自定義過濾條件] 可以設(shè)置過濾規(guī)則。

方法補(bǔ)充

下面是小編整理的其他Python備份文件的方法,希望對(duì)大家有所幫助

1.Python實(shí)現(xiàn)制作文件的備份

import os
 
def backup_file(filename):
    """制作文件的備份
    Args:
        filename: 要備份的文件名
    Returns:
        None
    """
 
    # 判斷文件是否存在
    if not os.path.isfile(filename):
        print("文件不存在")
        return
 
    # 獲取文件路徑和擴(kuò)展名
    filepath, ext = os.path.splitext(filename)
 
    # 生成備份文件名
    backup_filename = filepath + "_backup" + ext
 
    # 判斷備份文件是否存在
    if os.path.isfile(backup_filename):
        # 覆蓋備份文件
        print("備份文件已存在,將覆蓋原有文件")
    else:
        # 創(chuàng)建備份文件
        print("正在創(chuàng)建備份文件...")
 
    # 復(fù)制文件
    shutil.copyfile(filename, backup_filename)
 
    # 提示成功信息
    print("備份成功")
 
# 使用示例
filename = "/path/to/file.txt"
 
backup_file(filename)

2.Python中的文件備份

def copyFile():
    # 接收用戶輸入的文件名
    old_File = input('請(qǐng)輸入要備份的文件名')
    file_list = old_File.split('.')
    # 構(gòu)建新的文件名.加上備份的后綴
    new_file = file_list[0] + '_備份.' + file_list[1]
    old_f = open(old_File, 'r')  # 打開需要備份的文件
    new_f = open(new_file, 'w')  # 以寫的模式去打開新文件,不存在則創(chuàng)建
    content = old_f.read()  # 將文件內(nèi)容讀取出來
    new_f.write(content)  # 將讀取的內(nèi)容寫到備份文件中
    old_f.close()
    new_f.close()
    pass
 
 
copyFile()

如果文件太大,如超過1-2個(gè)g,這個(gè)代碼就不太合適了。我們的內(nèi)存是不夠的。

如果處理超大文件,一次性將全部?jī)?nèi)容讀取到內(nèi)存地址是不合適的,接下來進(jìn)行代碼修改。

def copyFile():
    # 接收用戶輸入的文件名
    old_File = input('請(qǐng)輸入要備份的文件名')
    file_list = old_File.split('.')
    # 構(gòu)建新的文件名.加上備份的后綴
    new_file = file_list[0] + '_備份.' + file_list[1]
    try:
        with open(old_File, 'r') as old_f, open(new_file, 'w') as new_f:
            while True:
                content = old_f.read(1024)  # 一次性讀取1024個(gè)字符
                new_f.write(content)
                if len(content)<1024:
                    break
    except Exception as msg:
        print(msg)
 
copyFile()

到此這篇關(guān)于Python實(shí)現(xiàn)Windows環(huán)境下自動(dòng)備份文件到遠(yuǎn)程目錄的文章就介紹到這了,更多相關(guān)Python自動(dòng)備份文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 換位密碼算法的實(shí)例詳解

    python 換位密碼算法的實(shí)例詳解

    這篇文章主要介紹了python 換位密碼算法的實(shí)例詳解的相關(guān)資料,換位密碼基本原理:先把明文按照固定長(zhǎng)度進(jìn)行分組,然后對(duì)每一組的字符進(jìn)行換位操作,從而實(shí)現(xiàn)加密,需要的朋友可以參考下
    2017-07-07
  • Scrapy從腳本運(yùn)行到分布式爬取的技巧(進(jìn)階實(shí)踐指南)

    Scrapy從腳本運(yùn)行到分布式爬取的技巧(進(jìn)階實(shí)踐指南)

    Scrapy作為Python生態(tài)中最強(qiáng)大的爬蟲框架之一,其官方文檔的"Common Practices"章節(jié)總結(jié)了多個(gè)高頻使用場(chǎng)景的解決方案,這篇文章給大家介紹Scrapy進(jìn)階實(shí)踐指南:從腳本運(yùn)行到分布式爬取,感興趣的朋友一起看看吧
    2025-05-05
  • 深入Python Tkinter 模塊

    深入Python Tkinter 模塊

    本文介紹Python Tkinter模塊,強(qiáng)調(diào)其輕量、跨平臺(tái)、無依賴的優(yōu)勢(shì),適用于快速開發(fā)無需復(fù)雜環(huán)境配置的桌面工具,通過布局、事件回調(diào)、樣式美化等核心技巧,結(jié)合PyInstaller打包,實(shí)現(xiàn)從腳本到可交付程序的完整流程,適合制作簡(jiǎn)單實(shí)用的小工具,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Python中read()、readline()和readlines()三者間的區(qū)別和用法

    Python中read()、readline()和readlines()三者間的區(qū)別和用法

    這篇文章主要給大家介紹了關(guān)于Python中讀取文件的read()、readline()和readlines()方法三者間的區(qū)別和用法,需要的朋友可以參考下
    2017-07-07
  • Python使用import導(dǎo)入本地腳本及導(dǎo)入模塊的技巧總結(jié)

    Python使用import導(dǎo)入本地腳本及導(dǎo)入模塊的技巧總結(jié)

    這篇文章主要介紹了Python使用import導(dǎo)入本地腳本及導(dǎo)入模塊的技巧,結(jié)合實(shí)例形式總結(jié)分析了Python使用import導(dǎo)入本地腳本及導(dǎo)入模塊的使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • Python sublime安裝及配置過程詳解

    Python sublime安裝及配置過程詳解

    這篇文章主要介紹了Python sublime安裝及配置過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python time.time()方法

    Python time.time()方法

    這篇文章主要介紹了詳解Python中time.time()方法的使用的教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • python實(shí)現(xiàn)簡(jiǎn)單遺傳算法

    python實(shí)現(xiàn)簡(jiǎn)單遺傳算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的遺傳算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法

    python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法

    這篇文章主要介紹了python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Django數(shù)據(jù)映射(一對(duì)一,一對(duì)多,多對(duì)多)

    Django數(shù)據(jù)映射(一對(duì)一,一對(duì)多,多對(duì)多)

    本文主要介紹了Django數(shù)據(jù)映射(一對(duì)一,一對(duì)多,多對(duì)多),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

宁德市| 阿勒泰市| 吴江市| 甘德县| 仪征市| 桂阳县| 岐山县| 乡城县| 云阳县| 海丰县| 南充市| 宣汉县| 新宁县| 沈丘县| 罗山县| 德兴市| 东丰县| 科技| 商城县| 伊春市| 峨边| 金阳县| 科技| 永康市| 宝清县| 哈尔滨市| 思茅市| 江西省| 南宁市| 诏安县| 伊宁市| 辉县市| 黄大仙区| 北海市| 四平市| 漳平市| 广元市| 黄骅市| 寿光市| 玉树县| 旬阳县|