自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

細思恐極,插上U盤就開始執(zhí)行Python代碼

開發(fā) 后端
我心想,能不能用python寫一個程序,讓它在后臺運行。每當有u盤插入的時候,就自動拷貝其中重要文件。

一個突發(fā)奇想,當你把usb插進去的時候,能不能自動執(zhí)行usb上的程序。查了一下,發(fā)現(xiàn)只有windows上可以,具體的大家也可以搜索(搜索關(guān)鍵詞usb autorun)到。但是,如果我想,比如,當一個usb插入時,在后臺自動把usb里的重要文件神不知鬼不覺地拷貝到本地或者上傳到某個服務(wù)器,就需要特殊的軟件輔助。

于是我心想,能不能用python寫一個程序,讓它在后臺運行。每當有u盤插入的時候,就自動拷貝其中重要文件。

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

首先我們打開電腦終端,進入/Volumes目錄,這時候插入U盤,可以發(fā)現(xiàn)它被掛載在了這個目錄之下,也就是說,我們只要在固定時間掃描這個目錄,當這個目錄有新文件夾出現(xiàn)的時候,很可能有U盤被插入了。

我的設(shè)計是這樣的,用time.sleep(3)函數(shù),讓程序保持運行狀態(tài),并且每隔三秒查看一下/Volumes/目錄,如果多出來文件夾,就將其拷貝到另外的文件夾。

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

如何選擇性的復(fù)制文件?

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

還是舉個例子吧。

我在某目錄下創(chuàng)建了testwalk文件夾,里面有file123.txt三個文件,folder123三個文件夾,其中folder1中有文件file4.txt以及folder4

現(xiàn)在我們來測試一下。

root存放的是當前位置,它會把./testwalk/下所有的文件夾作為根目錄,往下搜索。

單獨查看 dirs

單獨查看 files

好了,我們現(xiàn)在需要遞歸usb文件夾,找到所有的file,查看大小,如果小于,比如3M,就拷貝進home,大于就舍去。

shutil模塊

現(xiàn)在我們拿剛才的文件夾舉例子,如果想把file1.txt拷貝到folder2:

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

os.path.getsize()判斷大小

os.path.getsize(文件名)返回的是一個單位為byte的數(shù)值,如果用來查看文件大小,我們則需要手動寫一個函數(shù),將其換算成容易閱讀的形式。

這里我們只要選擇文件大小小于3M的即可,3M = 3 * 1024kB = 3 * 1024*1024byte

結(jié)合shutil.copy2就可以把選定大小的文件復(fù)制進我們的目標文件夾了

如何指定文件類型

這里就需要正則表達式來幫助我們了。

正則表達式內(nèi)容很多,《python核心編程》中用了整整一章來講,所以我們也不深入了。

如下,我們讓指定文件后綴以及指定文件大小可以復(fù)制進我們的目標文件:

別忘了導(dǎo)入 re

用更加復(fù)雜的正則表達式可以更好地指定文件類型

根據(jù)修改時間篩選文件

這時候我在目錄下創(chuàng)建了一個文件叫做newfile

總之,對每一個文件進行修改時間的篩選可以只復(fù)制那些近期,或者特定時期修改或者添加過的文件,這個功能在特定情況下很有用。

總結(jié)

其實,這就是一個小程序,也談不上是什么高深的惡意代碼。我更想通過這個例子,展示python對于文件處理的強大能力,引發(fā)大家的學(xué)習(xí)熱情。以上實現(xiàn)都是基于macos,linux應(yīng)該一樣,windows稍加修改也可以成功。以上技術(shù)僅供學(xué)習(xí),切勿用于其他行為。

責任編輯:龐桂玉 來源: 菜鳥學(xué)Python
相關(guān)推薦

2022-08-21 10:32:38

python

2019-12-27 08:33:45

Java工具IDE

2017-09-13 13:54:09

2022-10-08 11:18:08

光攻擊Zoom

2018-08-23 15:47:43

個人信息安全

2019-08-28 13:44:51

人工智能AI機器人

2018-12-05 12:59:28

比特幣區(qū)塊鏈BTC

2023-03-24 12:10:47

面部識別算法

2015-10-28 16:32:52

人工智能谷歌搜索算法

2019-03-04 08:11:53

AIDeepFakes深度學(xué)習(xí)

2021-10-08 15:21:52

AI 數(shù)據(jù)人工智能

2021-08-31 10:39:52

語音克隆MockingBird合成器

2021-02-25 11:03:46

人工智能

2021-02-23 15:36:32

人工智能機器人工具

2022-07-27 14:01:57

AI機器人

2016-09-30 01:04:45

數(shù)據(jù)分析數(shù)據(jù)

2023-01-11 12:51:04

微軟音頻

2024-11-29 14:30:00

AI模型

2011-03-24 16:38:34

2018-08-28 07:08:29

點贊
收藏

51CTO技術(shù)棧公眾號