起因

前几天去国图拍了一本书,一本心理学方面的书,也许你问我为什么不去买一本,或者去网上找pdf。 其实吧,关于心理学方面的书可以说在市面上一抓就是一堆,至于拍这本书两个原因,一个是没有什么收藏价值不值得我去买,只适合应急用,然后就是这本书的作者写作特点和其他大众的不太一样,可以说是有特点或者偏门,于是我就在手机上拍了一堆的图片,后来整理成了pdf,但是昨天我看的时候原图片文件还在快上千了吧,一个一个选择删除真是删烦了,也许你会说为什么不导入到电脑上进行删除,没办法我就是想整点不一样的,学了python就是喜欢整点骚操作。(手动滑稽)所以下面就在手机上使用python进行一波骚操作。。。

准备工具

首先你得有个手机,233(和没说一样),咳咳 说正经的,既然我要在手机上运行python了,这里我推荐pydroid3,因为代码是基于python3.6写的(f-string的使用)。安装打开之后这个样子

剩下的就是运行代码了,这个后面我们再说.

思路

在做这件事之前我们得知道具体如何去做。1.确定待处理图片文件所在目录2.然后确定要删除哪些图片,这里我们以图片创建日期为准进行筛选。3.为了防止误删,安全起见在该文件夹里创建一个trash目录,首先把目标图片移动到该文件夹,然后确认图片可以删除之后再进行删除。就像不要轻易使用rm一样,你懂得。给自己留一个反悔的时间。

代码实现

好了既然思路确定了我们就可以动手实现了。

1.确认文件所在文件夹,这里使用pathlib模块,pathlib是python3里的一个标准库,主要也是操作路径,和os模块操作路径比要说区别的话,就是拼接路径有时候比较方便,最好的就是两个配合着使用。

好了下面上代码

import pathlibdir_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 globimage_path_list = glob.glob(to_str_path(dir_path.joinpath("*.jpg")))

之前说获取的路径是对象所以to_str_path是一个转换成字符串路径的方法。*.jpg可以匹配所以后缀为jpg的文件生产结果列表。

4.文件都获取完了但是并不一定都是我们需要的,我们需要的指定日期内的文件

import osfile_time = os.path.getctime(image_path)

通过getctime我们获取了图片创建时间,进行进一步筛选。

5.文件都准备好了,我们就需要移动到trash目录,等待处理了。通过os模块的rename方法或者shutils的move方法可以对文件进行移动,这里我选择os模块

import osos.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手机版怎么用-手机使用python操作图片文件(pydroid3)过程详解相关推荐

  1. python进程socket通信_Python Socket TCP双端聊天功能实现过程详解

    SOCKET编程 socket(套接字):是一个网络通信的端点,能实现不同主机的进程通信, -通过IP+端口定位对方并发送消息的通信机制 分为UDP和TCP 客户端Client: 发起访问的一-方 服 ...

  2. python做动态折线图_Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图 ...

  3. python aes加密 cbc_Python实现AES的CBC模式加密和解密过程详解 和 chr() 函数 和 s[a:b:c] 和函数lambda...

    1.chr()函数 chr() 用一个范围在 range(256)内的(就是0-255)整数作参数,返回一个对应的字符. 2.s[a:b:c] s=(1,2,3,4,5) 1>. s[a]下标访 ...

  4. python数据可视化的特点_Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图 ...

  5. 手机上python编程工具3和3h有区别吗_qpython3h编程 (python手机版)app下载_qpython3h编程 (python手机版) v3.0 安卓版 - D9下载站...

    qpython3h编程 (python手机版) 3.0 分享到: 大小:22 MB 时间:2020-09-01 授权:免费软件 语言:简体中文 平台:Android 软件简介 QPython3手机版是 ...

  6. 手机使用python操作图片文件

    手机使用python操作图片文件 起因 前几天去国图拍了一本书,一本心理学方面的书,也许你问我为什么不去买一本,或者去网上找pdf. 其实吧,关于心理学方面的书可以说在市面上一抓就是一堆,至于拍这本书 ...

  7. 手机版 软件测试,三大手机版聊天软件评测

    当我们走在街头时,时不时会听到标志性的QQ消息到达提示声,这样的情形一点也不新鲜.如今,即时通讯工具已不再仅仅局限于电脑上使用,手机端的聊天软件功能已经越来越全面,性能也不差;另一方面,手机上网的资费 ...

  8. python爬虫bilibili_Python爬虫 bilibili视频弹幕提取过程详解

    两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import ...

  9. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 上海大学c语言程序设计,上海大学2009-C语言程序设计秋季学期试卷.doc
  2. Bootstrap select 多选并获取选中的值
  3. 简单mysql 查询_MySQL简单查询详解
  4. string to xml java_Java String to XML - Parse String to XML DOM Example - 入门小站-rumenz.com
  5. 我国网民规模已达7.51亿 但网络安全值得警惕
  6. 11 ORA系列:ORA-01791: 不是 SELECTed 表达式(distinct使用注意点)
  7. np读取csv文件_被 Pandas read_csv 坑了
  8. [转]android webview学习
  9. oracle11g memory_target,Oracle11g启动报:ORA-00845: MEMORY_TARGET not supported on this system
  10. osip和mysql_Windows下编译eXosip、osip,以及UAC和UAS的例子
  11. js 高级 constructor构造函数
  12. OpenNI体感应用开发实战 (Kinect相机)
  13. 如何查找并修改CAD图纸中的标注文字?
  14. FPGA基本设计流程
  15. root 账号不能登录的解决方法
  16. 交换机之三层交换原理
  17. mysql数据库默认密码在哪看_怎么查看mysql数据库的登录名和密码
  18. iOS程序猿的flutter学习之路
  19. C语言实现字母的大写转换成小写
  20. 记一次使用Valgrind查找解决内存问题的玄幻旅程

热门文章

  1. gfnormal 域名 是阿里云的高防IP
  2. web3.js(二)根据私钥推出地址查询以太数量
  3. 集成开发环境(IDE)
  4. 关于BitmapImage EndInit()时报值不在范围内的异常
  5. iOS-runtime通篇详解-上
  6. CatalanStirling数
  7. Missing artifact jdk.tools:jdk.tools:jar:1.6
  8. json_encode 中文乱码
  9. Android的开机流程
  10. 【bzoj3601】一个人的数论 莫比乌斯反演+莫比乌斯函数性质+高斯消元