手機(jī)使用python操作圖片文件(pydroid3)過(guò)程詳解
起因
前幾天去國(guó)圖拍了一本書,一本心理學(xué)方面的書,也許你問(wèn)我為什么不去買一本,或者去網(wǎng)上找pdf。 其實(shí)吧,關(guān)于心理學(xué)方面的書可以說(shuō)在市面上一抓就是一堆,至于拍這本書兩個(gè)原因,一個(gè)是沒(méi)有什么收藏價(jià)值不值得我去買,只適合應(yīng)急用,然后就是這本書的作者寫作特點(diǎn)和其他大眾的不太一樣,可以說(shuō)是有特點(diǎn)或者偏門,于是我就在手機(jī)上拍了一堆的圖片,后來(lái)整理成了pdf,但是昨天我看的時(shí)候原圖片文件還在快上千了吧,一個(gè)一個(gè)選擇刪除真是刪煩了,也許你會(huì)說(shuō)為什么不導(dǎo)入到電腦上進(jìn)行刪除,沒(méi)辦法我就是想整點(diǎn)不一樣的,學(xué)了python就是喜歡整點(diǎn)騷操作。(手動(dòng)滑稽)所以下面就在手機(jī)上使用python進(jìn)行一波騷操作。。。
準(zhǔn)備工具
首先你得有個(gè)手機(jī),233(和沒(méi)說(shuō)一樣),咳咳 說(shuō)正經(jīng)的,既然我要在手機(jī)上運(yùn)行python了,這里我推薦pydroid3,因?yàn)榇a是基于python3.6寫的(f-string的使用)。安裝打開(kāi)之后這個(gè)樣子
剩下的就是運(yùn)行代碼了,這個(gè)后面我們?cè)僬f(shuō).
思路
在做這件事之前我們得知道具體如何去做。1.確定待處理圖片文件所在目錄2.然后確定要?jiǎng)h除哪些圖片,這里我們以圖片創(chuàng)建日期為準(zhǔn)進(jìn)行篩選。3.為了防止誤刪,安全起見(jiàn)在該文件夾里創(chuàng)建一個(gè)trash目錄,首先把目標(biāo)圖片移動(dòng)到該文件夾,然后確認(rèn)圖片可以刪除之后再進(jìn)行刪除。就像不要輕易使用rm一樣,你懂得。給自己留一個(gè)反悔的時(shí)間。
代碼實(shí)現(xiàn)
好了既然思路確定了我們就可以動(dòng)手實(shí)現(xiàn)了。
1.確認(rèn)文件所在文件夾,這里使用pathlib模塊,pathlib是python3里的一個(gè)標(biāo)準(zhǔn)庫(kù),主要也是操作路徑,和os模塊操作路徑比要說(shuō)區(qū)別的話,就是拼接路徑有時(shí)候比較方便,最好的就是兩個(gè)配合著使用。
好了下面上代碼
import pathlibdir_path = pathlib.Path(filename).resolve().parent
resolve方法是獲取文件運(yùn)行時(shí)的目錄,parent是獲取上一級(jí)目錄,也就是圖片的所在文件夾
2.創(chuàng)建trash目錄,移動(dòng)之后的圖片所在目錄。
思路分析中提到這個(gè)文件夾得作用就是類似垃圾箱可以確認(rèn)后再刪除。
trash_dir = dir_path.joinpath("trash")
我們可以通過(guò)joinpath方法進(jìn)行拼接路徑,os.path.join()需要填二個(gè)參數(shù),這里只需要一個(gè)即可,這就是優(yōu)勢(shì)。但是需要注意的是這個(gè)方法最終獲取的路徑是個(gè)對(duì)象不是字符串在后面的使用中需要轉(zhuǎn)換成字符串形式的路徑.
3.接下來(lái)我們知道我們需要操作的文件類型是圖片,這里我以jpg為例,當(dāng)然如果你的圖片是png你可以寫png,python3的標(biāo)準(zhǔn)庫(kù)提供了glob模塊,這模塊可以設(shè)置匹配規(guī)則去獲取需要匹配的圖片列表。
import globimage_path_list = glob.glob(to_str_path(dir_path.joinpath("*.jpg")))
之前說(shuō)獲取的路徑是對(duì)象所以to_str_path是一個(gè)轉(zhuǎn)換成字符串路徑的方法。*.jpg可以匹配所以后綴為jpg的文件生產(chǎn)結(jié)果列表。
4.文件都獲取完了但是并不一定都是我們需要的,我們需要的指定日期內(nèi)的文件
import osfile_time = os.path.getctime(image_path)
通過(guò)getctime我們獲取了圖片創(chuàng)建時(shí)間,進(jìn)行進(jìn)一步篩選。
5.文件都準(zhǔn)備好了,我們就需要移動(dòng)到trash目錄,等待處理了。通過(guò)os模塊的rename方法或者shutils的move方法可以對(duì)文件進(jìn)行移動(dòng),這里我選擇os模塊
import osos.rename("移動(dòng)前完整文件路徑", "移動(dòng)后完整文件路徑")
6.此時(shí)文件就在trash目錄了。然后確認(rèn)完了就可以刪了,如果沒(méi)問(wèn)題就執(zhí)行delete方法.這里提供兩種刪除方式一種是刪除所有文件,一種是整個(gè)文件夾都刪除,兩種唯一的區(qū)別就是下次不用創(chuàng)建trash目錄了,沒(méi)多大區(qū)別.
if del_type == "dir": shutil.rmtree(trash_path) # 遞歸刪除一個(gè)目錄以及目錄內(nèi)的所有內(nèi)容 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)
演示
首先確定需要整理的文件在哪個(gè)目錄。這里用我之前的手機(jī)截圖目錄為例。這里有個(gè)小問(wèn)題就是,我怎么知道我的截圖文件在哪個(gè)目錄….一般手機(jī)查看圖片的時(shí)候都有個(gè)詳細(xì)信息這里面一般有路徑。向下面這樣。
通過(guò)圖片我們可以清楚的看到路徑在截圖文件夾里,至此我們就確定了文件的目錄。
然后為了方便我們就在需要操作的目錄里執(zhí)行python腳本,打開(kāi)前面我們安裝的pydroid3然后按照我的操作
1.將代碼復(fù)制到下面的框里
可以把newfile改個(gè)別的名字.
2.調(diào)用方法傳入?yún)?shù)方法傳入日期參數(shù)格式例如20190101。這里以20171227為例運(yùn)行代碼。在運(yùn)行之后沒(méi)有結(jié)果,后來(lái)看了一眼圖片知道了,程序默認(rèn)圖片格式是jpg,我的截圖都是png,所以我需要指定filetype參數(shù)為png,同是date_str參數(shù)設(shè)置為20171012.
運(yùn)行代碼:
之后會(huì)發(fā)現(xiàn)指定的文件已經(jīng)在trash目錄了,
3.之后就可以執(zhí)行delete方法刪除了.
結(jié)語(yǔ)
到此為止,教程就這結(jié)束了,本來(lái)打算寫成多線程版的提提速來(lái)著結(jié)果發(fā)現(xiàn)好像手機(jī)沒(méi)反應(yīng),所以最好還是使用循環(huán)操作文件了,這里只是提供這么一個(gè)思路,代碼沒(méi)什么難度。關(guān)鍵是看用途,怎么樣你學(xué)會(huì)了么。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python 實(shí)現(xiàn)手機(jī)自動(dòng)撥打電話的方法(通話壓力測(cè)試)
- Python正則匹配判斷手機(jī)號(hào)是否合法的方法
- python使用itchat實(shí)現(xiàn)手機(jī)控制電腦
- Python實(shí)現(xiàn)自動(dòng)上京東搶手機(jī)
- Python爬蟲實(shí)現(xiàn)爬取京東手機(jī)頁(yè)面的圖片(實(shí)例代碼)
- Python隨機(jī)生成手機(jī)號(hào)、數(shù)字的方法詳解
- Python爬蟲抓取手機(jī)APP的傳輸數(shù)據(jù)
- python實(shí)現(xiàn)發(fā)送和獲取手機(jī)短信驗(yàn)證碼
相關(guān)文章
python matlab庫(kù)簡(jiǎn)單用法講解
在本篇文章里小編給大家整理了一篇關(guān)于python matlab庫(kù)簡(jiǎn)單用法講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12python使用urllib2提交http post請(qǐng)求的方法
這篇文章主要介紹了python使用urllib2提交http post請(qǐng)求的方法,涉及Python使用urllib2模塊的相關(guān)技巧,需要的朋友可以參考下2015-05-05關(guān)于Python使用turtle庫(kù)畫任意圖的問(wèn)題
這篇文章主要介紹了Python turtle庫(kù)畫任意圖,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04python?Pangu自動(dòng)美化中文排版工具使用探索
這篇文章主要為大家介紹了python?Pangu自動(dòng)美化中文排版工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減
這篇文章主要介紹了pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02給大家整理了19個(gè)pythonic的編程習(xí)慣(小結(jié))
這篇文章主要介紹了給大家整理了19個(gè)pythonic的編程習(xí)慣(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09videocapture庫(kù)制作python視頻高速傳輸程序
python視頻高速傳輸程序,大家參考使用吧2013-12-12python如何定義一個(gè)迭代器去生成偶數(shù)數(shù)列
這篇文章主要介紹了python如何定義一個(gè)迭代器去生成偶數(shù)數(shù)列問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python實(shí)現(xiàn)信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06