国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(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

結合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

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

總結

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

-End-

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

審核編輯 :李倩

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

    關注

    7

    文章

    497

    瀏覽量

    66186
  • 函數(shù)
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67519
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90041

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析DS92LV8028 8通道10:1

    深入解析DS92LV8028 8通道10:1器 引言 在電子設計領域,高速數(shù)據(jù)傳輸和處理一直是關鍵需求。DS92LV8028作為一款由德州儀器(TI)推出的8通道10:
    的頭像 發(fā)表于 12-31 10:10 ?296次閱讀

    深入解析SCAN928028:8通道10:1器的卓越性能與應用指南

    通道10:1器,將八串行器集成于單一芯片,具備IEEE 1149.1(JTAG)兼容性和全速內(nèi)建自
    的頭像 發(fā)表于 12-30 10:05 ?252次閱讀

    EZ-USB? FX10 DVK (KIT_FX10_FMC_001) 套件指南:助力視頻音頻流應用開發(fā)

    ? FX10 DVK (KIT_FX10_FMC_001) 套件為我們提供了一強大的解決方案,可實現(xiàn)視頻和音頻無縫流式傳輸?shù)?USB 主機。今天,我們就來深入了解一下這個套件。 文件
    的頭像 發(fā)表于 12-18 15:20 ?519次閱讀

    Termux中調試圣誕樹Python代碼

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

    LABVIEW 2023 Q1調用python后一直報錯1671

    LABVIEW 2023Q1調用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 ?519次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴展的商品詳情爬蟲實戰(zhàn)

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

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

    termux如何搭建python游戲

    用VS Code編輯 - 版本控制:`git`管理代碼,同步至GitHub/Gitee - 任務調度:通過`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

    請問如何增大usb3.0從設備fifo接口固件中的dma緩存大小?

    現(xiàn)有的固件是默認的,分別配置了21KB的緩存給讀和的dma。我想要多分配一點緩存給dma,比如分配4kB給dma。請教一下該如何修改
    發(fā)表于 05-14 08: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 ?666次閱讀
    <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 ?2041次閱讀
    零基礎入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?