文件处理在如今的日常工作中非常常见,我们每天或多或少也都在与文件打交道,现在,如何快速处理文件更是提升工作效率的关键。不过,不要担心,我们可以写一些程序来帮助我们来处理文件。
闲话不多说,我们接着上次继续为您介绍有关文件处理的一些操作!
先提出几个问题
1,如何从一个文件夹(包含许多文件夹以及文件)中将所有的txt文件(或其它)类型文件提取出来,即把这些文件复制到新文件夹中。
2,我们有一个文件夹,里面有许多图片,也有许多文件夹,而子文件夹里同样有许多照片,我们想把这些照片删除,或者改名字。
-----------------
通过分析可知,上面的问题都可以通过手动解决,就是什么复制,粘贴,删除,重命名.......,看起来似乎很容易。然而这一切的一切都存在一个大前提,那就是规模小。但是,不巧的是,恰恰很多时候,我们都是批量处理文件,单纯手动操作,基本不可能。
-------------------------------------------
所以,学习一些程序处理方式还是很有必要的。
1,复制文件
程序格式:shutil.copy(source,destination),函数返回值为一个字符串,表示被复制文件的路径。
>>> import shutil,os #引入shutil os 库>>> shutil.copy('E:\data.txt','E:\newdata1')'E:\newdata1\data.txt'>>> shutil.copy('E:\data.txt','E:\newdata1\datacopy.txt')'E:\newdata1\datacopy.txt'
解释:
source:要复制文件的文件路径,
destination: 接受source路径下文件的文件夹(一般已存在)
当然,如果destination是个文件名,就比如E:newdata1datacopy.txt,那么即为把source路径的文件复制到了'E:newdata1',但为新文件提供了一个名字,为datacopy.txt。
2,复制文件夹
shutil.copytree(source,detination),函数返回一个字符串,表示,新复制的文件夹的路径。
>>> import shutil os>>> shutil.copytree('E:\newdata1','E:\新建')'E:\新建'>>> shutil.copytree('E:\newdata1','E:\A1')FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\A1'
解释:
将路径source处的文件夹,包括它的所有文件和文件夹,复制到路径destination处的文件夹。前提:这个destination处的文件夹是不能存在的,否则程序会报错。也就相当于把原文件夹进行了备份。
虽然已经学到了这些,但想要将那两个问题解决,我们还要学习更多知识。



