python程序怎么保存到u盤_python實現usb自動拷貝程序的方法

python實現usb自動拷貝程序的方法

發布時間:2020-06-28 09:07:05

來源:億速云

閱讀:135

作者:清晨

這篇文章將為大家詳細講解有關python實現usb自動拷貝程序的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

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

153187.png

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

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

153188.png

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

如何選擇性的復制文件?

剛剛我們寫了一個很簡易的腳本測試了一下這個想法的可行性,但是還是有問題。

剛才之所以能把U盤中所有文件很快復制進去,是因為U盤中只有兩三個文件,大小不超過15M。

如果目標U盤中有很多電影,音樂,這些我們并不需要的文件,我們的程序就應該能跳過它們,僅僅選擇一些重要的比如.docx比如.ppt文件,或者僅僅復制最近修改過的那些文件,或者排除所有大小大于5M的文件。我們可以用python做到嗎?當然!

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

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

153189.png

現在我們來測試一下

153190.png

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

153193.png

單獨看dirs

153194.png

單獨查看files

153195.png

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

shutil模塊

153196.png

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

153198.png

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

os.path.gersize()判斷大小

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

153199.png

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

153200.png

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

如何指定文件類型

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

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

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

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

別忘了導入re

153201.png

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

根據修改時間篩選文件

153203.png

這時候我在目錄下創建了一個文件叫做newfile

153204.png

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

關于python實現usb自動拷貝程序的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455608.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455608.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455608.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

young people can also be a leader

2019獨角獸企業重金招聘Python工程師標準>>> The leaders or directors of organizations are often older people. But some people say that young people can also be a leader. To what extent do you agree or disagree? In my view , young people can also …

BZOJ 2004 公交線路(狀壓DP+矩陣快速冪)

注意到每個路線相鄰車站的距離不超過K&#xff0c;也就是說我們可以對連續K個車站的狀態進行狀壓。 然后狀壓DP一下&#xff0c;用矩陣快速冪加速運算即可。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm>#define…

python爬取網易云歌單_詳解python selenium 爬取網易云音樂歌單名

目標網站&#xff1a;首先獲取第一頁的數據&#xff0c;這里關鍵要切換到iframe里打印一下獲取剩下的頁數&#xff0c;這里在點擊下一頁之前需要設置一個延遲&#xff0c;不然會報錯。結果&#xff1a;一共37頁&#xff0c;爬取完畢后關閉瀏覽器 完整代碼&#xff1a; url htt…

Idea的一些調試技巧及設置todo

程序員的工作內容&#xff0c;除了大部分時間寫代碼之外&#xff0c;因為有不少的時間是用在調試代碼上。甚至說不是在調試代碼&#xff0c;就是即將調試代碼。 :) 今天我們來談談調試代碼的一些技巧&#xff0c;在使用IDE提供的debugger時一些快速定位問題的方式。 看到這里的…

安裝Node.js和npm

安裝Node.js和npm 學習了&#xff1a;http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044cab5acb5125baf0882000 轉載于:https://www.cnblogs.com/stono/p/6891242.html

c++ cstring 轉換 char_cstring.h庫常用函數

上周&#xff0c;老師講了大整數的運算方法&#xff0c;我對大數的存儲和運算還有些不理解&#xff0c;仔細思考了一下&#xff0c;其實還是訓練孩子對機器存儲數據的各種掌握和運用吧。不多想&#xff0c;先期孩子雖然一直學習&#xff0c;但是缺乏對知識的系統整理&#xff0…

Django后臺管理之商品分類

商品分類 1.建表字段 1.pid&#xff1a;用來綁定父類的 2.path&#xff1a;用來拼接id&#xff0c;保證查詢出的數據是按照層級關系展示的2.concat 把表中的兩個字段拼接成一個新的字段&#xff0c;通過as重新命名3.查詢語句 1.按照第二步拼接成新的字段的名字進行排序查詢…

PMT_Stream數據結構

0123 012345670123456701234567012345671stream_type reserved_1elementary_PIDreserved_2ES_info_length 2ES_info_length …(描述信息)3…(描述信息)4crc32 1 節目號 stream_type 8指示了PID為elementary_PID的PES分組中原始流的類型&#xf…

Maven:基本使用

為什么80%的碼農都做不了架構師&#xff1f;>>> 1.項目管理工具&#xff1a; Maven的repository&#xff0c;說白了就是dependency的倉庫&#xff0c;它按照一定的規則將dependency存放起來&#xff0c;以作緩存&#xff0c;如果本機的 repository找不到某個depen…

UVA 11383 - Golden Tiger Claw(二分圖完美匹配擴展)

UVA 11383 - Golden Tiger Claw 題目鏈接 題意&#xff1a;給定每列和每行的和&#xff0c;給定一個矩陣&#xff0c;要求每一個格子(x, y)的值小于row(i) col(j)&#xff0c;求一種方案&#xff0c;而且全部行列之和的和最小 思路&#xff1a;A二分圖完美匹配的擴展&#xff…

淺談web開發以及django的安裝和入門

淺談web開發 1.B/S和C/S結構 B/S:瀏覽器與服務器進行的交互模式&#xff08;不需要官方下載的&#xff0c;一夫多妻制&#xff09; C/S:客戶機與服務器進項的交互模式&#xff08;必須官方下載的&#xff0c;一夫一妻制2.MVC和MVT MVC: M:模型層&#xff08;Model&#xff0…

大數據可視化html模板開源_大數據時代-可視化數據分析平臺必不可少

公眾號&#xff1a;不安分的猿人一、項目簡介DataGear是一款數據管理與可視化分析平臺&#xff0c;使用Java語言開發&#xff0c;采用瀏覽器/服務器架構&#xff0c;支持多種數據庫&#xff0c; 主要功能包括數據管理、SQL工作臺、數據導入/導出、數據集管理、圖表管理、看板管…

java輸出一些內容到日志文件

在eclipse中新建一個項目&#xff0c;在src下新建一個log4j.properties文件&#xff0c;文件內容為下&#xff1a;log4j.rootLogger debug,stdout,D,Elog4j.appender.E org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File E://logs/error.log log4j.appender.E…

PMT_Header-節目映射表的數據結構2

1 標志位 table_id8固定為0x02 &#xff0c;標志是該表是PAT2段語法標志位section_syntax_indicator 1段語法標志位&#xff0c;固定為13 zero104保留字reserved_12保留字5有用的字節數section_length 12表示這個字節后面有用的字節數&#x…

Django中的Model模型

Model模型 模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。 通常&#xff0c;每個模型對應數據庫中唯一的一張表。 每個模型都是django.db.models.Model的一個Python 子類。模型的每個屬性都表示為數據庫中的一個字段。Django 提供一套自動生成的…

python有多少種模塊_python如何查看有哪些模塊

Question: 如何查看正則表達式模塊re及其相關函數的意義 1、終端命令行下 python >> import sys >> sys.modules ################################### 一長串信息中字段modules對應的模塊即為包含的模塊。 ################################### >> import r…

淺談面向對象的javascript幾個特性

javascript中的this和new javascript是一門很靈活的語言&#xff0c;尤其是function。他即可以以面向過程的方式來用&#xff0c;比如&#xff1a; function getName() {return 張三 } getName() 也可以以面向對象的方式來用&#xff0c;比如&#xff1a; function User() {th…

【Netty】ChannelHandler和ChannelPipeline

一、前言 前面學習了Netty的ByteBuf&#xff0c;接著學習ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中&#xff0c;ChannelHandler可以被鏈在一起處理用戶邏輯。 1. Channel生命周期 Channel接口定義了一個…

TS流頭部的調整字段

見 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html