chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

10行Python代碼寫1個USB病毒

Android編程精選 ? 來源:知乎 ? 作者:DeepWeaver ? 2022-11-02 13:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

9308187c-59eb-11ed-a3b6-dac502259ad0.jpg

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

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

9321d8e8-59eb-11ed-a3b6-dac502259ad0.jpg

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

如何選擇性的復制文件?

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

os.walk 遞歸文件夾中所有文件

http://www.runoob.com/python/os-walk.html

這里我放了一個別人的教程。大家可以大概了解一下,總之我大概理解是這么個東西。

還是舉個例子吧。

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

93341030-59eb-11ed-a3b6-dac502259ad0.png

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

9342c5b2-59eb-11ed-a3b6-dac502259ad0.png

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

934a57dc-59eb-11ed-a3b6-dac502259ad0.png

單獨查看 dirs

93537308-59eb-11ed-a3b6-dac502259ad0.png

單獨查看 files

935c8268-59eb-11ed-a3b6-dac502259ad0.png

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

shutil模塊

93a8cce0-59eb-11ed-a3b6-dac502259ad0.jpg

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

93b2f256-59eb-11ed-a3b6-dac502259ad0.png

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

os.path.getsize()判斷大小

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

93bc6174-59eb-11ed-a3b6-dac502259ad0.png

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

93c77ffa-59eb-11ed-a3b6-dac502259ad0.png

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

如何指定文件類型

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

正則表達式內(nèi)容很多,《python核心編程》中用了整整一章來講,所以我們也不深入了。下面是官方文檔,感興趣的可以看一下。

https://docs.python.org/2/library/re.html

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

別忘了導入 re

93cf55c2-59eb-11ed-a3b6-dac502259ad0.png

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

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

93db1fba-59eb-11ed-a3b6-dac502259ad0.png

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

93eb79aa-59eb-11ed-a3b6-dac502259ad0.jpg

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

總結(jié)

其實,標題這么起只是為了吸引大家注意,這就是一個小程序,也談不上病毒。我更想通過這個例子,展示python對于文件處理的強大能力,引發(fā)大家的學習熱情。以上實現(xiàn)都是基于macos,linux應該一樣,windows稍加修改也可以成功。

-End-

最近有一些小伙伴,讓我?guī)兔φ乙恍┟嬖囶}資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • U盤
    +關注

    關注

    7

    文章

    496

    瀏覽量

    65473
  • 函數(shù)
    +關注

    關注

    3

    文章

    4406

    瀏覽量

    66849
  • python
    +關注

    關注

    57

    文章

    4858

    瀏覽量

    89592

原文標題:10 行 Python 代碼寫 1 個 USB 病毒

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Termux中調(diào)試圣誕樹Python代碼

    在Termux中調(diào)試Python代碼(以圣誕樹立例)非常簡單,核心分為環(huán)境準備、代碼編寫、運行調(diào)試三步驟,下面一步步教你操作: 一、環(huán)境準備(首次使用需做) Termux默認可能沒有
    發(fā)表于 12-09 09:02

    LABVIEW 2023 Q1調(diào)用python后一直報錯1671

    LABVIEW 2023Q1調(diào)用python后一直報錯1671報錯信息:PythonNode_AddTwoDoubles.vi中的打開Python會話Python returned
    發(fā)表于 11-12 09:51

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴展的商品詳情爬蟲實戰(zhàn)

    ? 目標字段 & CSS 選擇器 ? 四、MVP:120 代碼即可跑通 單文件腳本,支持異步并發(fā) 10 ASIN,自動重
    的頭像 發(fā)表于 10-21 16:59 ?387次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴展的商品詳情爬蟲實戰(zhàn)

    termux調(diào)試python猜數(shù)字游戲

    用termux做一猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實現(xiàn)方案,結(jié)合Python實現(xiàn)(最適配Termux環(huán)境): ? 一、環(huán)境準備(Termux基礎配置) 1
    發(fā)表于 08-29 17:15

    termux如何搭建python游戲

    用VS Code編輯 - 版本控制:`git`管理代碼,同步至GitHub/Gitee - 任務調(diào)度:通過`crontab`設置定時測試(如每分鐘運行游戲腳本:`*/1 * * * * python
    發(fā)表于 08-29 07:06

    HarmonyOSAI編程編輯區(qū)代碼續(xù)

    理解的情況下進行代碼續(xù)。在編輯器中的內(nèi)容較少時,AI可能無法有效理解用戶的意圖并生成相應的代碼。 模型反饋需滿足規(guī)則:光標上文10內(nèi),有
    發(fā)表于 08-21 15:43

    HarmonyOS AI輔助編程工具(CodeGenie)代碼續(xù)

    理解的情況下進行代碼生成。在編輯器中的內(nèi)容較少時,AI可能無法有效理解用戶的意圖并生成相應的代碼。 模型反饋需滿足規(guī)則:光標上文10內(nèi),有效代碼
    發(fā)表于 07-15 16:15

    基礎篇3:掌握Python中的條件語句與循環(huán)

    \"] for name in names: print(name) 以及一使用while循環(huán)的示例,用于計算從1加到100的總和: 復制代碼 sum = 0 number = 1
    發(fā)表于 07-03 16:13

    fx3 sdk中的usb control center在win10以上系統(tǒng)中燒固件失敗怎么解決?

    fx3 sdk1.3中的usb control center在win10和以上系統(tǒng)中燒固件失敗,狀態(tài)欄提示failed,在win7系統(tǒng)中燒寫成功沒有問題,請問在win10以上系統(tǒng)中怎
    發(fā)表于 05-08 06:00

    10分鐘上手寫代碼,LuatOS協(xié)程輕松掌握!

    上手寫代碼~ ? 1、協(xié)程是什么?——小白秒懂版? ?? 場景?:小明一邊寫作業(yè),一邊等外賣: ?普通做法?: 5分鐘作業(yè)→開門看外賣→再寫5分鐘→再去看外賣...(效率低) ?協(xié)程做法?: ?協(xié)程A(寫作業(yè))?:
    的頭像 發(fā)表于 04-10 15:18 ?495次閱讀
    <b class='flag-5'>10</b>分鐘上手寫<b class='flag-5'>代碼</b>,LuatOS協(xié)程輕松掌握!

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    是一種非常有用的編程語言,其語法易于閱讀,允許程序員使用比匯編、C或Java等語言更少的代碼。Python編程語言最初實際上是作為Linux的腳本語言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?1531次閱讀
    零基礎入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩推理過程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與
    發(fā)表于 03-06 06:22

    Dockcase推出USB-C 10Gbps 擴展塢

    2 月 6 日消息,海外廠商 Dockcase 近日推出了一款七合一 USB-C 10Gbps 擴展塢,為數(shù)碼設備用戶帶來了全新的解決方案。 從接口配置來看,該擴展塢十分豐富。它擁有 1
    的頭像 發(fā)表于 02-07 18:02 ?1218次閱讀

    使用Python實現(xiàn)xgboost教程

    使用Python實現(xiàn)XGBoost模型通常涉及以下幾個步驟:數(shù)據(jù)準備、模型訓練、模型評估和模型預測。以下是一詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XG
    的頭像 發(fā)表于 01-19 11:21 ?2230次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-mfgtools燒錄流程之燒方法

    。 注意:使用USB OTG燒時,不能插入TF卡。 一、打開燒工具mfgtools所在文件夾:ELF 1開發(fā)板資料包\\06-常用工具\\06-4 燒
    發(fā)表于 12-19 09:09