现在人们经常要去下载或者接收一些文件。 比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢? 科研工作者、学生们可能需要阅读大量的文献,我们也需要阅读很多的电子书等等,这些文件你又是如何处理的呢? 是一一归类好,还是堆在一个文件夹里就算了? 以前我会按照文件的类型进行分类,并定期处理,但这个过程会耗费我大量的时间。
后来我在学python的过程中,就想到了这个小需求,能不能用python批量操作呢?这样会减少我们的整理时间,能够让工作和学习效率更高。 经历了一番和python的斗争之后,我终于写出来了这样的一个小代码。 既然要归类,首先要建立对应的文件夹,这里面选择使用python原生的os库进行操作,要进行一系列的系统操作,选择使用shutil库。 import os 我打算将我A文件夹下面的各个文件夹里面文件区分开,那首先要让程序确定你的东西是在哪里。 要先写一个path,我是给这些文件夹放在了F盘a,那我设置的path就是它,如果是别的目录,就写对应的路径就好了。
文档的路径图例子如下: 此处划重点:我们在程序中输入的路径和电脑系统中直接复制出来的路径不同,如果直接用从电脑系统中复制出来的,会报错。 有三种方法可以解决这个问题。
这三种方法,逗汁儿更喜欢第一种~喜欢哪种方法就用哪种吧,但是在各种系统中第一种写法都支持哦,强烈推荐第一种。 接下来就要在建立两个文件夹,分别存储图片和文档文件: os.makedirs(path + ‘/tupian’) 装文件的文件夹建好了,那我们就进行下一步,在移动文件之前需要确定要移动的文件有哪些,这个要根据什么判断呢? 我们知道确定文件是什么类型的就是后缀名啦,那我们就让程序知道什么后缀的属于图片文件,什么后缀的属于文档文件就好了。
·建立好了两个列表之后,就要进行循环来移动文件。 for p in wendang_list: ·首先要先要确定文档所在文件夹,建立路径
·用os.listdir()来确定这个文件夹里面有什么东西(哪些是pdf,哪些是word文件) wendang_files= os.listdir(wendang_path) ·利用循环来进行文件移动
·shuil.move的两个参数分别表示,原来文件所在地以及要移动的位置 shutil.move(pdf_path + '/' + i, path + '/wendang') ·删除原文件夹
这一部分就讲文档类的文件都移动进来了,那下一步就是将图片类的文件移动进来。 for i in img_list: 执行完以上代码后文件夹如下图所示: (吐槽一下,这个xmind调了半天也没调出来在正中间,让我这个强迫症很难受) 刚才在讲解的过程中代码相对比较乱,现在给一份完整版。
|
|
来自: Four兄 > 《Python好代码》