精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python 實現文件復制和移動的高級技巧

開發(fā)
今天,我們將深入探討如何使用Python高效地復制和移動文件,不僅包括基本的用法,還將涉及到一些高級技巧

Python文件操作是一項基礎而重要的技能。今天,我們將深入探討如何使用Python高效地復制和移動文件,不僅包括基本的用法,還將涉及到一些高級技巧,如批量處理、錯誤處理以及使用第三方庫提高效率。

基礎:使用shutil模塊

Python的shutil模塊提供了高級的文件和文件集合操作,對于文件復制和移動來說,copy()和move()是最直接的工具。

文件復制

import shutil

def copy_file(src, dst):
    """
    復制單個文件。
    src: 源文件路徑
    dst: 目標文件路徑
    """
    shutil.copy(src, dst)
    print(f"文件已復制:{src} -> {dst}")

# 示例
copy_file('example.txt', 'copy_example.txt')

這段代碼將example.txt復制為copy_example.txt。shutil.copy()會創(chuàng)建一個新的文件,其內容與源文件相同。

文件移動

def move_file(src, dst):
    """
    移動文件,原位置文件不再存在。
    src: 源文件路徑
    dst: 目標文件路徑
    """
    shutil.move(src, dst)
    print(f"文件已移動:{src} -> {dst}")

# 示例
move_file('copy_example.txt', 'moved_example.txt')

使用shutil.move(),源文件將被移動到目標位置,源位置的文件不再存在。

高級技巧:批量操作與錯誤處理

批量復制

當我們需要復制一個目錄下的所有文件時,可以結合os模塊進行遞歸操作。

import os
import shutil

def batch_copy(src_dir, dst_dir):
    """
    批量復制目錄下的所有文件。
    """
    if not os.path.exists(dst_dir):
        os.makedirs(dst_dir)  # 創(chuàng)建目標目錄
    for item in os.listdir(src_dir):
        s = os.path.join(src_dir, item)
        d = os.path.join(dst_dir, item)
        if os.path.isdir(s):
            batch_copy(s, d)
        else:
            shutil.copy2(s, d)  # 使用copy2以保持元數據
    print("批量復制完成")

# 示例
batch_copy('source_folder', 'destination_folder')

錯誤處理

在文件操作中,經常遇到權限問題或文件不存在的情況。使用try-except塊來優(yōu)雅地處理這些情況。

def safe_copy(src, dst):
    try:
        shutil.copy(src, dst)
    except FileNotFoundError:
        print(f"錯誤:源文件 {src} 未找到。")
    except PermissionError:
        print("錯誤:沒有足夠的權限訪問文件。")
    except Exception as e:
        print(f"發(fā)生未知錯誤:{e}")

safe_copy('nonexistent_file.txt', 'destination.txt')

高級技術:使用pathlib模塊

pathlib是Python 3.4及以上版本引入的,它提供了一種面向對象的方式來處理文件系統(tǒng)路徑。

文件復制的pathlib方式

from pathlib import Path

def pathlib_copy(src_path, dst_path):
    """
    使用pathlib進行文件復制。
    """
    src = Path(src_path)
    dst = Path(dst_path)
    dst.write_bytes(src.read_bytes())  # 直接讀取和寫入字節(jié)
    print(f"使用pathlib復制:{src} -> {dst}")

# 示例
pathlib_copy('example.txt', 'pathlib_example.txt')

動態(tài)路徑構建與模式匹配

pathlib還支持動態(tài)路徑構建和模式匹配,非常適合批量操作。

def find_and_copy(src_dir, pattern='*', dst_dir):
    """
    在源目錄中查找匹配模式的文件并復制到目標目錄。
    """
    src_path = Path(src_dir)
    dst_path = Path(dst_dir)
    for file in src_path.glob(pattern):  # 使用glob匹配文件
        dst_file = dst_path / file.name
        shutil.copy(file, dst_file)
    print("匹配并復制完成")

find_and_copy('source_folder', '*.txt', 'text_files_folder')

實戰(zhàn)案例分析

假設我們需要從多個子目錄中復制所有.txt文件到一個中心位置,并且希望在復制過程中記錄每一個操作。

def organize_txt_files(root_dir, dest_dir):
    root_path = Path(root_dir)
    dest_path = Path(dest_dir)
    dest_path.mkdir(parents=True, exist_ok=True)
    
    log_file = open(os.path.join(dest_dir, 'operation_log.txt'), 'w')
    
    for subdir, dirs, files in os.walk(root_dir):
        for file in files:
            if file.endswith('.txt'):
                src_file = Path(subdir) / file
                dst_file = dest_path / file
                shutil.copy2(src_file, dst_file)
                log_file.write(f"Copied: {src_file} to {dst_file}\n")
                
    log_file.close()
    print("文本文件整理完成,操作日志已生成。")

organize_txt_files('documents', 'central_text_repo')

這個案例展示了如何結合使用os.walk()遍歷目錄樹、pathlib進行路徑操作、以及文件操作時的錯誤處理和日志記錄,體現了Python在文件管理上的靈活性和強大功能。

進階:利用多線程加速復制

在處理大量文件或大文件復制時,可以考慮使用多線程來提高效率。Python的threading模塊允許我們并行執(zhí)行任務。雖然在I/O密集型任務(如文件復制)中,Python的全局解釋器鎖(GIL)可能會限制線程的真正并行,但多線程仍然可以通過減少等待時間來提升效率。

多線程文件復制示例

為了簡化,這里僅展示基本思路,實際應用可能需要更復雜的錯誤處理和線程同步機制。

import os
import shutil
import threading
from queue import Queue

def worker(q):
    """
    工作線程,從隊列中取出文件路徑并復制文件。
    """
    while True:
        src, dst = q.get()
        if src is None:  # 退出信號
            break
        try:
            shutil.copy2(src, dst)
            print(f"線程復制:{src} -> {dst}")
        except Exception as e:
            print(f"復制失敗:{e}")
        finally:
            q.task_done()

def threaded_copy(files, num_threads=4):
    """
    使用多線程復制文件列表。
    files: 文件路徑對列表,[(src1, dst1), (src2, dst2), ...]
    num_threads: 線程數量
    """
    q = Queue(maxsize=0)
    threads = []

    for _ in range(num_threads):
        t = threading.Thread(target=worker, args=(q,))
        t.start()
        threads.append(t)

    for src, dst in files:
        q.put((src, dst))

    # 等待所有任務完成
    q.join()

    # 發(fā)出退出信號給所有線程
    for _ in range(num_threads):
        q.put(None)

    # 等待所有線程結束
    for t in threads:
        t.join()

# 示例:構造文件列表
files_to_copy = [(f'source_folder/file{i}.txt', f'destination_folder/file{i}.txt') for i in range(10)]

threaded_copy(files_to_copy)

注意事項

  • 性能考量:多線程并不總是能顯著提高文件操作的速度,尤其是在磁盤I/O已經很慢的情況下。實際應用時,需要根據具體環(huán)境和文件大小調整線程數量。
  • 資源管理:過多的線程會消耗更多的內存和CPU資源,可能導致系統(tǒng)響應變慢。
  • 錯誤處理:在多線程環(huán)境中,錯誤處理變得更加復雜,確保有適當的異常捕獲和處理邏輯。

結語

通過本文的講解,你現在已經掌握了Python中文件復制和移動的基本及進階技巧,包括使用標準庫函數、批量操作、錯誤處理、使用pathlib模塊以及多線程加速等。這些技能不僅能幫助你處理日常的文件管理任務,也能在更復雜的應用場景中發(fā)揮重要作用。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2009-08-17 08:04:00

C#高級編程

2009-12-10 10:30:31

PHP刪除復制文件

2020-12-14 08:41:06

攻擊內網安全網絡安全

2016-11-25 13:34:42

Python開發(fā)

2012-10-23 13:55:57

為什么要用你的服務呢?

2010-10-29 14:20:54

Oracle移動控制文

2023-12-20 07:52:49

Python高級用法生成器

2010-03-23 16:30:47

Python文件復制

2024-05-24 08:04:12

技巧管理器數據庫

2023-11-30 16:05:17

2023-05-15 09:14:38

2010-04-28 11:19:04

Oracle高級復制

2009-12-10 10:24:24

PHP寫入文件

2010-04-28 08:55:40

Oracle高級復制

2019-02-28 20:46:35

Python高級技巧編程語言

2010-04-22 16:08:24

Oracle數據庫

2010-12-27 10:38:17

VirtualBox主機文件共享

2024-01-24 13:22:40

Python調試工具技巧

2014-07-28 10:27:37

linux集群

2012-11-27 17:41:16

點贊
收藏

51CTO技術棧公眾號

能在线看的av| 日产中文字幕在线精品一区 | 久久亚洲一级片| 久久久亚洲福利精品午夜| 一本色道久久hezyo无码| 亚洲精品一级片| 亚洲成人日韩| 亚洲成人av在线| 亚洲精品高清无码视频| 国产黄大片在线观看画质优化| 国产91精品在线观看| 欧美壮男野外gaytube| 国产又粗又猛又爽又黄的视频四季 | 四虎影视在线观看2413| 日本va欧美va欧美va精品| 欧美老女人在线视频| 国产又爽又黄无码无遮挡在线观看| 欧美性aaa| 婷婷综合在线观看| 亚洲精品成人自拍| 亚洲日本国产精品| 国产一区二区三区四区在线观看| 91av福利视频| 国产1区2区3区4区| 国产欧美一区二区精品久久久| 欧美精品 国产精品| 内射国产内射夫妻免费频道| 国产网站在线免费观看| 国产午夜精品久久久久久免费视| 99精品99久久久久久宅男| 波多野结衣一本一道| 黄色欧美日韩| 久久躁狠狠躁夜夜爽| 波多野结衣a v在线| 国产suv精品一区| 欧美一区二区久久久| 一级黄色香蕉视频| 日韩伦理精品| 亚洲电影中文字幕在线观看| 成人在线观看www| 在线免费看黄| 日本一区免费视频| 欧美福利一区二区三区| 人人妻人人澡人人爽精品日本| 精品一区二区在线看| 国产99久久精品一区二区| 日本熟伦人妇xxxx| 狠狠爱综合网| 久久综合伊人77777尤物| 91成人精品一区二区| 免费精品国产| 精品一区二区三区电影| 中文字幕乱码一区| 精品视频在线你懂得| 亚洲国产天堂久久综合| 国产亚洲色婷婷久久| 亚洲精品成人一区| 欧美久久久久免费| 免费一区二区三区在线观看| 福利视频一区| 欧美三级乱人伦电影| 男女男精品视频站| 欧美成人三级| 欧美一a一片一级一片| 欧美丰满熟妇xxxxx| 日本黄色一区| 欧美精品日日鲁夜夜添| 亚洲一区精品视频在线观看| 国产免费av国片精品草莓男男 | 亚洲第一色网站| 国产精品一二三四| 国产成人av一区二区三区| 性一交一乱一色一视频麻豆| 成人h精品动漫一区二区三区| 国产精品theporn88| 天天色综合久久| 久久久综合网站| 日韩精品资源| 黄网址在线观看| 亚洲综合一区二区精品导航| 日韩在线综合网| 亚洲wwww| 91精品国产入口在线| 国产人妖在线观看| 性欧美lx╳lx╳| 怡红院精品视频| 中文字幕在线观看2018| 91久久夜色精品国产九色| 欧美做受高潮电影o| 91麻豆精品在线| 狠狠色丁香婷婷综合| 国产传媒一区二区| 青青青草原在线| 日韩久久一区二区| 黄页网站在线观看视频| 成人免费网站www网站高清| 欧美精品v国产精品v日韩精品 | 电影一区二区在线观看| 亚洲品质视频自拍网| 女同久久另类69精品国产| 欧美午夜精品| 国产精品免费久久久| 亚洲av无码乱码国产麻豆| 91片在线免费观看| 永久域名在线精品| 女人高潮被爽到呻吟在线观看| 欧美性色黄大片手机版| 一个人看的视频www| 国产一级一片免费播放| 成人无号精品一区二区三区| 久久91亚洲精品中文字幕奶水| 日本中文在线播放| 国产自产高清不卡| 欧美中文娱乐网| 欧美四级在线| 欧美色综合网站| 国产xxxxxxxxx| 亚洲欧美综合久久久| 日本不卡高字幕在线2019| 性生活黄色大片| 亚洲国产精品av| 久久亚洲精品网站| 日本一级特级毛片视频| 国产精品一卡| 成人动漫视频在线观看完整版| 国产午夜在线视频| 午夜精品123| 午夜大片在线观看| 区一区二视频| 日本欧美国产在线| 人成网站在线观看| 亚洲欧美日韩在线| 亚洲免费看av| 久草在线成人| 欧美中文字幕在线播放| 免费观看a视频| 亚洲男帅同性gay1069| 天天色综合社区| 国产毛片一区二区三区 | 亚洲淫成人影院| 亚洲成人精品av| 九九九在线视频| 国产在线看一区| 艳色歌舞团一区二区三区| 日韩一级二级| 在线视频欧美性高潮| 日韩在线 中文字幕| 99在线精品观看| 黄色一级视频在线播放| 狠狠一区二区三区| 国内精品久久久久久久| 少妇av一区二区| 五月综合激情日本mⅴ| 催眠调教后宫乱淫校园| 欧美私人啪啪vps| 不卡视频一区二区三区| 黄色影院在线看| 精品盗摄一区二区三区| 国产精品6666| 99久久亚洲一区二区三区青草| 国产手机免费视频| 亚洲小说图片| 国产精品电影观看| 麻豆视频在线免费观看| 欧美一级欧美一级在线播放| 五月婷婷一区二区| 成人精品电影在线观看| 国产视频一视频二| 在线日韩一区| 国产日韩一区在线| 日本色护士高潮视频在线观看| 精品三级av在线| 国产奶水涨喷在线播放| 久久精品无码一区二区三区| 91制片厂毛片| 欧美日韩a区| 久久久久久久久四区三区| 欧美黄色网页| 久久久精品久久| 欧美在线 | 亚洲| 日本高清不卡在线观看| 日本爱爱小视频| 丁香婷婷综合网| 男人亚洲天堂网| 日韩在线中文| 国产精品久久亚洲| 成人免费直播| 久久精品免费播放| 91禁男男在线观看| 三级网站视频在在线播放| 欧美影院精品一区| 欧美日韩精品亚洲精品| 99久久99久久精品免费看蜜桃| 国产午夜福利视频在线观看| 三区四区不卡| 国产一区喷水| 欧美成人一二区| 久久久视频在线| 成人在线免费观看| 欧美不卡在线视频| 国产一区免费看| 一区二区三区产品免费精品久久75| 欧美xxxxx精品| 秋霞成人午夜伦在线观看| 国产精品啪啪啪视频| 日韩三级av| 国产一区二区在线免费| 美女高潮视频在线看| 久久精品福利视频| 男生女生差差差的视频在线观看| 欧美一区二区成人| 特级西西444www高清大视频| 亚洲图片欧美色图| 亚洲色图100p| 久久精品这里都是精品| www.四虎精品| 韩国一区二区三区| 国产l精品国产亚洲区久久| 欧美国产综合| 一区二区三区四区国产| 亚洲天堂日韩在线| 国产精品区一区二区三含羞草| 久久天天久久| 开心九九激情九九欧美日韩精美视频电影 | 精品国精品国产自在久国产应用| 国产精品国产三级欧美二区| 欧美xxxx网站| 国产精品av网站| 免费v片在线观看| 久久久久久久久爱| 在线三级中文| 久久久国产精品视频| www.在线播放| 亚洲人午夜精品| 四虎精品在永久在线观看| 欧美一级午夜免费电影| 一区二区视频免费| 91久久精品午夜一区二区| 亚洲天堂一区在线观看| 亚瑟在线精品视频| 国产精品 欧美 日韩| 一区二区三区欧美久久| 国产美女久久久久久| 综合欧美亚洲日本| 色哟哟一一国产精品| 亚洲欧洲日产国码二区| 国产一区二区三区视频播放| 欧美激情一区二区三区在线| 国产特级黄色录像| 久久精品一区二区三区四区| 中文字幕在线看高清电影| 国产亚洲综合在线| 免费看裸体网站| 国产欧美日韩亚州综合| 99久久人妻无码精品系列| 91久色porny| 亚洲国产av一区| 亚洲国产高清不卡| 国产三级aaa| 亚洲人成网站色在线观看| 国产性生活大片| 亚洲一区免费视频| 日本中文字幕免费| 欧美丝袜第一区| 青青国产在线视频| 欧美精品第一页| 精品久久在线观看| 亚洲国产成人91精品| 青青青草网站免费视频在线观看| 亚洲视频综合网| 男女啪啪在线观看| 久久91亚洲人成电影网站| 都市激情久久综合| 日本道色综合久久影院| 99精品在免费线偷拍| 91久久国产综合久久91精品网站| 亚洲日本视频在线| 久久久久久a亚洲欧洲aⅴ| 国产欧美日韩精品一区二区三区| 亚洲一区二区在线看| 欧美精品97| 一本大道熟女人妻中文字幕在线 | 久久久久亚洲av无码麻豆| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成人精品在线播放| 26uuu色噜噜精品一区| 欧美乱大交做爰xxxⅹ小说| 一区二区三区日韩精品视频| 国产99久久久| 9191久久久久久久久久久| 丰满熟妇人妻中文字幕| 亚洲天堂第一页| 免费毛片在线看片免费丝瓜视频| 欧美性受xxxx黑人猛交| 亚洲一区二区av| 裸模一区二区三区免费| 99久久99久久精品国产片桃花| 国产一区二区三区小说| 日本不卡在线视频| 免费啪视频在线观看| 日本一区二区三区高清不卡| 精品少妇久久久| 欧美三级视频在线观看| 污污视频在线免费看| www.欧美免费| 丰满大乳国产精品| 成人一区二区三区在线观看| 国产精品999.| 国产日韩精品一区二区三区在线| 久久久久亚洲AV成人| 在线视频你懂得一区| 国精产品一品二品国精品69xx| 上原亚衣av一区二区三区| 美女扒开腿让男人桶爽久久软| 亚洲专区在线视频| 波多野结衣一区| 国产精品又粗又长| 国产九九视频一区二区三区| 日韩一级片在线免费观看| 精品久久久久久电影| a天堂中文在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 欧美性爽视频| 亚洲xxx视频| 亚洲欧美在线专区| 天堂av在线8| 日本一区二区三区免费乱视频| 国产污污视频在线观看| 亚洲精品一区二区三区福利| 性欧美videoshd高清| 91精品综合视频| 日韩欧美字幕| 亚洲视频一二三四| 国产精品免费视频观看| av首页在线观看| 国产亚洲精品久久久久动| 蜜桃视频在线网站| 蜜桃999成人看片在线观看| 国产精品嫩草99av在线| 99久久免费看精品国产一区 | 一区二区欧美在线| 免费观看一级欧美片| 精品国产乱码久久久久| 999亚洲国产精| 久久久久国产精品区片区无码| 亚洲国产精品欧美一二99| 秋霞网一区二区| 2020欧美日韩在线视频| 宅男在线一区| 色综合色综合色综合色综合| 日韩欧美一区二区三区在线观看| 久久综合色婷婷| 亚洲精品高清在线| 日韩中文字幕在线视频| 折磨小男生性器羞耻的故事| 精品久久久中文字幕人妻| 日韩精品亚洲元码| 爱啪啪综合导航| 极品日韩久久| 亚洲制服av| 成年人性生活视频| 亚洲一卡二卡三卡四卡无卡久久| 亚洲精品久久久久久动漫器材一区| 久久国产精品免费视频| 白嫩白嫩国产精品| 国产二区视频在线| 成人免费看视频| 日本韩国欧美中文字幕| 亚洲区一区二区| 四虎在线精品| 超碰人人爱人人| 91免费国产在线观看| 日本中文字幕久久| 精品国模在线视频| 免费精品一区| 男女午夜激情视频| 国产日韩欧美电影| 国语对白做受69按摩| 啊v视频在线一区二区三区| 日韩精品一页| 日韩伦理在线免费观看| 久久婷婷久久一区二区三区| 在线免费av网| 久久69精品久久久久久久电影好| 久久激情av| 久久久久久三级| 一区二区三区鲁丝不卡| 少妇一区二区三区四区| 国产精品三级美女白浆呻吟| 中文无码久久精品| av av在线| 色中色一区二区| 色多多视频在线观看| 国产麻豆日韩| 日本在线不卡一区| 久久久久久久久久综合 | 欧美在线观看网站| 999国产精品999久久久久久| 精品无码人妻少妇久久久久久| 好吊成人免视频|