Python實現U盤數據復制工具
更新時間:2025年01月03日 10:20:38 作者:hvinsion
這篇文章主要為大家詳細介紹了如何使用Python實現一個U盤數據復制工具,它可以幫助用戶快速、方便地將U盤中的文件復制到計算機中,希望對大家有所幫助
1. 簡介
顧名思義,U盤小偷是一款功能強大的U盤數據復制工具。它可以幫助用戶快速、方便地將U盤中的文件復制到計算機中,此工具簡潔易用,用戶只需簡單更改配置文件具體參數即可完成對U盤內文件的復制工作。
功能:
- 打包好的程序雙擊運行無控制臺界面彈出,后臺靜默搜索U盤插入狀態(tài),更加隱私下載。
- 可通過更改config.ini配置文件從而更改檢索U盤的時間間隔、文件copy的目的路徑、可選的copy內容等,具體可以參考以下config.ini的文檔說明。
- 可自定義選擇篩選需要copy的文件內容,亦可選擇全部下載。
config.ini文件相關內容
# PASTE_PATH:需要復制到電腦的文件夾路徑 # KEYWORD:關鍵詞索引,如果留空不填寫則表示復制U盤下的所有文件以及文件夾 # INTERVAL_TIME:更改檢查U盤是否存在的間隔時間,默認1s檢查一次 [config] PASTE_PATH = D:\usb kEYWORD = INTERVAL_TIME = 5
2. 運行效果
3. 相關源碼
import os import logging import configparser from psutil import disk_partitions from time import sleep from shutil import copytree, copyfile, rmtree, move logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) # 讀取API配置 config = configparser.ConfigParser() config.read('config.ini') pastePATH = config.get('config', 'PASTE_PATH') ukeyword = config.get('config', 'kEYWORD') intervalTime = config.get('config', 'INTERVAL_TIME') # 獲取U盤的盤符 # disk_partitions() 打印一下他的返回值,就會完全清楚下面這個函數 def get_usb_dispart(): for item in disk_partitions(): if item.opts == "rw,removable": # 可讀、可移動介質 logger.info("發(fā)現USB:%s" % str(item)) return item.device logger.info("沒有發(fā)現USB") return None # 讀取想要的文件 u盤所有文件或者文件名含有某個字段的文件及文件夾 # 1、文件夾含有該字段:復制文件夾; # 2、文件含有字段,復制文件。 def get_useb_file(src, path="", select=None, dst=r"C:\usb"): if select is None:# 無篩選規(guī)則,復制所有 copytree(src, dst) logger.info("復制%s盤USB所有內容到%s" % (src, dst)) else: # 復制部分 paths = os.listdir(os.path.join(src, path)) # 獲取當前路徑下的所有文件及文件夾 for item in paths: item = os.path.join(path, item) if select in item: if os.path.isdir(os.path.join(src, item)): #如果是文件夾,還有字符直接復制文件夾;否則遞歸遍歷文件夾下的內容 try: copytree(os.path.join(src, item), os.path.join(dst, item)) except Exception as e: try: rmtree(os.path.join(dst, item)) except: continue copytree(os.path.join(src, item), os.path.join(dst, item)) else: try: copyfile(os.path.join(src, item), os.path.join(dst, item)) except Exception as e: os.makedirs(os.path.dirname(os.path.join(dst, item))) try: move(os.path.join(dst, item)) except: continue copyfile(os.path.join(src, item), os.path.join(dst, item)) logger.info("復制%s 到 %s" % (os.path.join(src, item), (os.path.join(dst, item)))) else: if os.path.isdir(os.path.join(src, item)): get_useb_file(src, item, select, dst) if __name__ == "__main__": while True: path = get_usb_dispart() if path is not None: get_useb_file(src=path, select=ukeyword, dst=pastePATH) break sleep(int(intervalTime))
到此這篇關于Python實現U盤數據復制工具的文章就介紹到這了,更多相關Python U盤數據復制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現動態(tài)創(chuàng)建類的方法分析
這篇文章主要介紹了python實現動態(tài)創(chuàng)建類的方法,結合實例形式分析了Python動態(tài)創(chuàng)建類的原理、實現方法及相關操作技巧,需要的朋友可以參考下2019-06-06django model 條件過濾 queryset.filter(**condtions)用法詳解
這篇文章主要介紹了django model 條件過濾 queryset.filter(**condtions)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Pandas_cum累積計算和rolling滾動計算的用法詳解
今天小編就為大家分享一篇Pandas_cum累積計算和rolling滾動計算的用法詳解,具有好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07使用jupyter notebook直接打開.md格式的文件
這篇文章主要介紹了使用jupyter notebook直接打開.md格式的文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04