前幾天去國圖拍了一本書,一本心理學方面的書,也許你問我爲何不去買一本,或者去網上找pdf。 其實吧,關於心理學方面的書能夠說在市面上一抓就是一堆,至於拍這本書兩個緣由,一個是沒有什麼收藏價值不值得我去買,只適合應急用,而後就是這本書的做者寫做特色和其餘大衆的不太同樣,能夠說是有特色或者偏門,因而我就在手機上拍了一堆的圖片,後來整理成了pdf,可是昨天我看的時候原圖片文件還在快上千了吧,一個一個選擇刪除真是刪煩了,
也許你會說爲何不導入到電腦上進行刪除,沒辦法我就是想整點不同的,學了python就是喜歡整點騷操做。(手動滑稽)
因此下面就在手機上使用python進行一波騷操做。。。python
首先你得有個手機,233(和沒說同樣),咳咳 說正經的,既然我要在手機上運行python了,這裏我推薦pydroid3,由於代碼是基於python3.6寫的(f-string的使用)
爲了方便你們下載,我給你們提供了百度雲下載的地址:
關注公衆號:python學習開發.後臺回覆:pydroid便可。
安裝打開以後這個樣子
剩下的就是運行代碼了,這個後面咱們再說.安全
在作這件事以前咱們得知道具體如何去作。
1.肯定待處理圖片文件所在目錄
2.而後肯定要刪除哪些圖片,這裏咱們以圖片建立日期爲準進行篩選。
3.爲了防止誤刪,安全起見在該文件夾裏建立一個trash目錄,首先把目標圖片移動到該文件夾,而後確認圖片能夠刪除以後再進行刪除。就像不要輕易使用rm同樣,你懂得。給本身留一個反悔的時間。微信
好了既然思路肯定了咱們就能夠動手實現了。
1.確認文件所在文件夾,這裏使用pathlib模塊,pathlib是python3裏的一個標準庫,主要也是操做路徑,和os模塊操做路徑比要說區別的話,就是拼接路徑有時候比較方便,最好的就是兩個配合着使用。好了下面上代碼多線程
import pathlib dir_path = pathlib.Path(filename).resolve().parent
resolve方法是獲取文件運行時的目錄,parent是獲取上一級目錄,也就是圖片的所在文件夾
2.建立trash目錄,移動以後的圖片所在目錄。
思路分析中提到這個文件夾得做用就是相似垃圾箱能夠確認後再刪除。工具
trash_dir = dir_path.joinpath("trash")
咱們能夠經過joinpath方法進行拼接路徑,os.path.join()須要填二個參數,這裏只須要一個便可,這就是優點。可是須要注意的是這個方法最終獲取的路徑是個對象不是字符串
在後面的使用中須要轉換成字符串形式的路徑.
3.接下來咱們知道咱們須要操做的文件類型是圖片,這裏我以jpg爲例,固然若是你的圖片是png你能夠寫png,python3的標準庫提供了glob模塊,這模塊能夠設置匹配規則去獲取須要匹配的圖片列表。學習
import glob image_path_list = glob.glob(to_str_path(dir_path.joinpath("*.jpg")))
以前說獲取的路徑是對象因此to_str_path是一個轉換成字符串路徑的方法。
*.jpg能夠匹配因此後綴爲jpg的文件生產結果列表。spa
4.文件都獲取完了可是並不必定都是咱們須要的,咱們須要的指定日期內的文件線程
import os file_time = os.path.getctime(image_path)
經過getctime咱們獲取了圖片建立時間,進行進一步篩選。
5.文件都準備好了,咱們就須要移動到trash目錄,等待處理了。
經過os模塊的rename方法或者shutils的move方法能夠對文件進行移動,這裏我選擇os模塊code
import os os.rename("移動前完整文件路徑", "移動後完整文件路徑")
6.此時文件就在trash目錄了。
而後確認完了就能夠刪了,若是沒問題就執行delete方法.
這裏提供兩種刪除方式一種是刪除全部文件,一種是整個文件夾都刪除,兩種惟一的區別就是下次不用建立trash目錄了,沒多大區別.對象
if del_type == "dir": shutil.rmtree(trash_path) # 遞歸刪除一個目錄以及目錄內的全部內容 else: if os.path.exists(trash_path): file_list = os.listdir(trash_path) if file_list: remove_f = partial(remove, trash_path=trash_path) start_thread(remove_f, file_list)
首先肯定須要整理的文件在哪一個目錄。
這裏用我以前的手機截圖目錄爲例。這裏有個小問題就是,我怎麼知道個人截圖文件在哪一個目錄....
通常手機查看圖片的時候都有個詳細信息這裏面通常有路徑。向下面這樣。 經過圖片咱們能夠清楚的看到路徑在截圖文件夾裏,至此咱們就肯定了文件的目錄。
而後爲了方便咱們就在須要操做的目錄裏執行python腳本,打開前面咱們安裝的pydroid3
而後按照個人操做
1.將代碼複製到下面的框裏
能夠把newfile改個別的名字.
2.調用方法傳入參數
方法傳入日期參數格式例如20190101。
這裏以20171227爲例運行代碼。
在運行以後沒有結果,後來看了一眼圖片知道了,程序默認圖片格式是jpg,個人截圖都是png,因此我須要指定filetype參數爲png,同是date_str參數設置爲20171012.
運行代碼:
以後會發現指定的文件已經在trash目錄了,
3.以後就能夠執行delete方法刪除了.
到此爲止,教程就這結束了,原本打算寫成多線程版的提提速來着結果發現好像手機沒反應,因此最好仍是使用循環操做文件了,這裏只是提供這麼一個思路,代碼沒什麼難度。關鍵是看用途,怎麼樣你學會了麼。
如需獲取完整代碼請關注微信公衆號:python學習開發,查找同名文章獲取完整代碼。