摘要:今天的騷操作,分享的是一個自動拷貝電腦盤內容的程序。當別人的盤插入到你的電腦上時,腳本會自動把盤所有的內容,全部拷貝到你的電腦上。騷源碼程序主要是由三個函數組成,。每個操作都會記錄到日志中,以便日后查看相應的拷貝信息。
閱讀文本大概需要 6 分鐘。
Python 這門語言有非常多有趣的內容,比如給微信好友自動發消息、查看微信好友撤回的消息、通過微信控制電腦等等。在我公眾號上也分享過很多有趣的程序,近期我會去搜集一些騷操作的 Python 程序分享給大家,并命名「Python 騷操作」專欄,持續更新!文中一些程序可能來自別人的文章,但如果我覺得程序還有所改進的地方,我會繼續添加一些代碼,并且我會在文末標注原程序出處。
今天的「Python 騷操作」,分享的是一個自動拷貝電腦 U 盤內容的程序。當別人的 U 盤插入到你的電腦上時,Python 腳本會自動把 U 盤所有的內容,全部拷貝到你的電腦上。腳本每隔 5 秒掃描當前電腦是否有 U 盤插入,如果是已拷貝過的內容,則不會重復拷貝,每個相應的操作都會記錄到日志文件中。
如果恰好這個 U 盤里有某些室友的「學習視頻」,比如下的圖片。
那騷氣指數 10 顆星!
注意此程序只是用來學習交流,切勿違法使用。
Python 騷思路
在 windows 系統中,當有 U 盤插入到你的電腦上時,會給它分配一個磁盤名稱,比如在我的電腦上分配的是「J」。所以我會先定義一個「USB_FILE」變量,表示 U 盤所在的目錄。
我們利用 os 庫來判斷當前系統是否有「USB_FILE」,如果掃描到當前系統有這個目錄,說明有 U 盤插入到當前電腦上。隨后我們通過 shutil 庫,把 U 盤里的內容全部拷貝到自己的電腦上。在每個操作之間我添加了 input_log() 方法,用來把當前相應的操作記錄到日志文件中。?
Python 騷源碼
程序主要是由三個函數組成,get_dirs_size()、main()、input_log()。
get_dirs_size()
get_dirs_size() 主要是返回要拷貝 U 盤的長度,用來判斷當前要拷貝的內容是否已經重復,如果重復則無需重新拷貝。
def?get_dirs_size(dir): ????size?=?0 ????for?root,?dirs,?files?in?os.walk(dir): ????????size?+=?sum([getsize(join(root,?name))?for?name?in?files]) ????print(size) ????return?size
main()
main() 用來執行主邏輯代碼,即每隔 5 秒檢查當前電腦是否有 U 盤插入。如果檢查到,則記錄當前 U 盤的長度。在下一次檢測的時候,如果當前的長度沒有發生變化,則無需重新拷貝。每個操作都會記錄到日志中,以便日后查看相應的拷貝信息。
def?main(): ????old_size?=?0 ????new_dirsize?=?0 ????while(1): ????????if?os.path.exists(USB_PATH): ????????????print("檢測到?U?盤") ????????????input_log("檢測到?U?盤") ????????????new_dirsize?=?get_dirs_size(USB_PATH) ????????????if?old_size?!=?new_dirsize: ????????????????for?filename?in?os.listdir(USB_PATH): ????????????????????print("拷貝了:"?+?filename) ????????????????????input_log("拷貝了:"?+?filename) ????????????????shutil.copytree(USB_PATH,?SAVE_PATH) ????????????????old_size?=?new_dirsize ????????????else: ????????????????print("U?盤沒有變化") ????????????????input_log("U?盤沒有變化") ????????else: ????????????print("暫時沒有?U?判斷") ????????print("開始休眠") ????????input_log("開始休眠") ????????sleep(5) ????????print("休眠結束,重新檢測") ????????input_log("休眠結束,重新檢測")
input_log() 利用 logging 庫,來把相應的操作信息保存到一個日志文件中。
def?input_log(message): ????handler?=?logging.handlers.RotatingFileHandler(LOG_FILE,?maxBytes=1024?*?1024,?backupCount=5, ???????????????????????????????????????????????????encoding="utf-8")??#?實例化handler ????fmt?=?"%(asctime)s?-?%(levelname)s?-?%(message)s" ????formatter?=?logging.Formatter(fmt)??#?實例化formatter ????handler.setFormatter(formatter)??#?為handler添加formatter ????logger?=?logging.getLogger("tst")??#?獲取名為tst的logger ????logger.addHandler(handler)??#?為logger添加handler ????logger.setLevel(logging.DEBUG) ????logger.info(message)
Python 騷教程
此次的程序使用非常簡單,首先下載源碼,后臺回復「拷貝」即可獲取源碼。然后修改下 USB_PATH 和 SAVE_PATH,這兩個參數表示的是你 U 盤所屬的位置和你想要保存的目錄。
LOG_FILE?=?"test.log" USB_PATH?=?"J:" SAVE_PATH?=?"D:disk_copy"
原程序參考來源:
http://uuzdaisuki.com/2018/03...
本文首發于公眾號「癡?!?,后臺回復「1024」即可獲取最新編程資源。
比如這樣的:史上最全 Python 學習資料,PDF 電子書大合集
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44844.html
摘要:今天帶給大家一個非常有意思的程序,基于實現微信控制電腦。你可以通過在微信發送命令,來拍攝當前電腦的使用者,然后圖片會發送到你的微信上。程序主要是通過使用庫來登錄到微信網頁端,然后通過來發送消息和接收消息。隨后會彈出一個微信網頁登錄的二維碼。 showImg(https://segmentfault.com/img/remote/1460000016807619); 閱讀文本大概需要 5...
摘要:單元素元祖這是整數這才是元祖也許這兩行,你們當時疑惑過,并且現在也都知道了,當然重點并不在這里。。雖然我水平很垃圾,但是我知道匿名函數有一種執行方式叫做自執行??窗?,這就是版的匿名函數自執行方法。 單元素元祖: a = (1) # 這是整數1 a = (1,) # 這才是元祖 也許這兩行,你們當時疑惑過,并且現在也都知道了,當然重點并不在這里。。 我無聊的時候想過,為什么單...
摘要:在盤上搭建相對完整的開發環境,主要分為本身數據庫遠程終端和版本控制等等幾個部分,下面分別介紹。有些項目現場開發的情況是這樣。這意味著不能用網上的虛擬機。想要進行開發,至少要有兩個東西和。數據庫是可以帶在盤上的。 showImg(https://segmentfault.com/img/bVPFvZ?w=1257&h=943); 是不是看到這張圖,覺得我這人真是苦逼啊?如果你有這方面的需...
閱讀 998·2023-04-26 02:21
閱讀 2816·2021-09-24 09:47
閱讀 1607·2019-08-30 15:55
閱讀 2162·2019-08-30 14:01
閱讀 2320·2019-08-29 14:01
閱讀 2047·2019-08-29 12:46
閱讀 813·2019-08-26 13:27
閱讀 1933·2019-08-26 12:23