前几天去国图拍了一本书,一本心理学方面的书,也许你问我为何不去买一本,或者去网上找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学习开发,查找同名文章获取完整代码。