搜尋
首頁後端開發Python教學怎麼實作插上USB就開始執行Python程式碼

如何判斷U盤的插入與否?

怎麼實作插上USB就開始執行Python程式碼

#首先我們開啟電腦終端,進入/Volumes目錄,此時插入U盤,可以發現它被掛載在了這個目錄之下,也就是說,我們只要在固定時間掃描這個目錄,當這個目錄有新資料夾出現的時候,很可能有U盤被插入了。

我的設計是這樣的,用time.sleep(3)函數,讓程式保持運行狀態,並且每隔三秒查看一下/Volumes/目錄,如果多出來資料夾,就將其拷貝到另外的資料夾。

怎麼實作插上USB就開始執行Python程式碼

就像標題所示,我們真的只用了10行(其實是11行,湊個整:)完成了這個「病毒」。我們可以發現usb中的目錄,在插入半分鐘後全部躺在了home目錄下了。

如何選擇性的複製檔案?

剛剛我們寫了一個很簡易的腳本測試了一下這個想法的可行性,但是還是有問題。剛才之所以能把U盤中所有文件很快複製進去,是因為U盤中只有兩三個文件,大小不超過15M。如果目標U盤中有很多電影,音樂,這些我們並不需要的文件,我們的程式就應該能跳過它們,僅僅選擇一些重要的比如.docx比如.ppt文件,或者僅僅複製最近修改過的那些文件,或排除所有大小大於5M的文件。我們可以用python做到嗎?當然!

還是舉個例子吧。

我在某目錄下創建了testwalk資料夾,裡面有file123.txt三個文件,folder123三個資料夾,其中folder1中有文件file4.txt以及folder4

怎麼實作插上USB就開始執行Python程式碼

#現在我們來測試一下

怎麼實作插上USB就開始執行Python程式碼

root存放的是目前位置,它會把./testwalk/下所有的資料夾當作根目錄,往下搜尋

怎麼實作插上USB就開始執行Python程式碼

單獨查看dirs

怎麼實作插上USB就開始執行Python程式碼

#單獨查看files

怎麼實作插上USB就開始執行Python程式碼

##好了,我們現在需要遞歸usb資料夾,找到所有的file,查看大小,如果小於,例如3M,就拷貝進home,大於就捨去。

shutil模組

怎麼實作插上USB就開始執行Python程式碼

現在我們拿剛才的資料夾舉例子,如果想把file1.txt拷貝到folder2:

怎麼實作插上USB就開始執行Python程式碼

#還有許多使用工具在shutil裡面這裡就不詳述了。

os.path.getsize()判斷大小

os.path.getsize(檔案名稱)傳回的是單位為byte的數值,如果用來檢視檔案大小,我們則需要手動寫一個函數,將其換算成容易閱讀的形式。

怎麼實作插上USB就開始執行Python程式碼

這裡我們只要選擇檔案大小小於3M的即可,3M = 3 * 1024kB = 3 * 1024*1024byte

怎麼實作插上USB就開始執行Python程式碼

#結合shutil.copy2就可以把選定大小的檔案複製進我們的目標資料夾了

#如何指定檔案類型

這裡就需要正規表示式來幫助我們了。

正規表示式內容很多,《python核心程式設計》中用了整整一章來講,所以我們也不深入了。

如下,我們讓指定檔案後綴以及指定檔案大小可以複製進我們的目標檔案:

#別忘了導入re

怎麼實作插上USB就開始執行Python程式碼

用更複雜的正規表示式可以更好地指定檔案類型

根據修改時間篩選檔案

怎麼實作插上USB就開始執行Python程式碼

這時候我在目錄下建立了一個檔案叫做newfile

怎麼實作插上USB就開始執行Python程式碼#

以上是怎麼實作插上USB就開始執行Python程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
Python的科學計算中如何使用陣列?Python的科學計算中如何使用陣列?Apr 25, 2025 am 12:28 AM

Arraysinpython,尤其是Vianumpy,ArecrucialInsCientificComputingfortheireftheireffertheireffertheirefferthe.1)Heasuedfornumerericalicerationalation,dataAnalysis和Machinelearning.2)Numpy'Simpy'Simpy'simplementIncressionSressirestrionsfasteroperoperoperationspasterationspasterationspasterationspasterationspasterationsthanpythonlists.3)inthanypythonlists.3)andAreseNableAblequick

您如何處理同一系統上的不同Python版本?您如何處理同一系統上的不同Python版本?Apr 25, 2025 am 12:24 AM

你可以通過使用pyenv、venv和Anaconda來管理不同的Python版本。 1)使用pyenv管理多個Python版本:安裝pyenv,設置全局和本地版本。 2)使用venv創建虛擬環境以隔離項目依賴。 3)使用Anaconda管理數據科學項目中的Python版本。 4)保留系統Python用於系統級任務。通過這些工具和策略,你可以有效地管理不同版本的Python,確保項目順利運行。

與標準Python陣列相比,使用Numpy數組的一些優點是什麼?與標準Python陣列相比,使用Numpy數組的一些優點是什麼?Apr 25, 2025 am 12:21 AM

numpyarrayshaveseveraladagesoverandastardandpythonarrays:1)基於基於duetoc的iMplation,2)2)他們的aremoremoremorymorymoremorymoremorymoremorymoremoremory,尤其是WithlargedAtasets和3)效率化,效率化,矢量化函數函數函數函數構成和穩定性構成和穩定性的操作,製造

陣列的同質性質如何影響性能?陣列的同質性質如何影響性能?Apr 25, 2025 am 12:13 AM

數組的同質性對性能的影響是雙重的:1)同質性允許編譯器優化內存訪問,提高性能;2)但限制了類型多樣性,可能導致效率低下。總之,選擇合適的數據結構至關重要。

編寫可執行python腳本的最佳實踐是什麼?編寫可執行python腳本的最佳實踐是什麼?Apr 25, 2025 am 12:11 AM

到CraftCraftExecutablePythcripts,lollow TheSebestPractices:1)Addashebangline(#!/usr/usr/bin/envpython3)tomakethescriptexecutable.2)setpermissionswithchmodwithchmod xyour_script.3)

Numpy數組與使用數組模塊創建的數組有何不同?Numpy數組與使用數組模塊創建的數組有何不同?Apr 24, 2025 pm 03:53 PM

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Apr 24, 2025 pm 03:49 PM

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

CTYPES模塊與Python中的數組有何關係?CTYPES模塊與Python中的數組有何關係?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器