Python 对文件的组织操作
- 1.shutil模块
- 1.1 文件(夹)的复制操作
- 1.2 文件(夹)的移动和重命名
- 1.3 文件(夹)的删除操作
- 1.4 遍历目录树
1.shutil模块
该模块基本功能:用python程序复制移动和删除文件等操作。
该模块的导入操作:
import shutil
1.1 文件(夹)的复制操作
# source:源路径
# destination 目标路径
# 将源路径的文件(夹)复制到目标路径
shutil.copy(source,destination)
相关的操作代码例子如下:
import os
import shutil
from pathlib import Path
p = Path.cwd() #当前路径
shutil.copy(p/'123.jpeg',p/'picture/pic1.jpeg')
我的当前路径下有一个图片文件123.jpeg和一个文件夹叫picture。
程序运行完后可以看到:
图片已经被我复制到文件夹下面去了。实际上如果不声明目标路径的文件名称pic1.jpeg的话就会将该图片不重命名的移动到文件夹下。
若要将一个文件夹中的所有内容移动到另一个文件夹中。则应该采用shutil.copytree(source,destination)。
1.2 文件(夹)的移动和重命名
移动文件(夹)在python中的命令为:
import shutil
shutil.move(source,destination)
**注意:**在这里,必须保证构成目的地的各层级目录必须已经存在。也就是说这里的source和destination必须写完整路 径,否则使用就会报错。
import shutil
from pathlib import Path
p = Path.cwd()
shutil.move(p/'125.jpg',Path(p,'picture','125.jpg'))
运行前:
运行后:
1.3 文件(夹)的删除操作
import os,shutle
- 采用函数
os.unlink(Path)
将删除Path处的文件 - 采用
os.rmdir(Path)
将删除空的文件及且必须是空的文件夹。 -
shutil.rmtree(Path)
将删除Path
处的文件夹,及其所有的文件夹内的内容。
文件及且必须是空的文件夹。 -
shutil.rmtree(Path)
将删除Path
处的文件夹,及其所有的文件夹内的内容。 - 在安装
send2trash
模块后,采用send2trash.send2trash(Path)
以将该路径下的文件夹送到回收站中。
1.4 遍历目录树
采用os.walk(Path)
函数,Path
是要遍历的文件夹的路径所在。在每次的循环迭代中返回以下三个值:
- 当前文件夹名称的字符串
- 当前文件夹中子文件夹的字符串的列表
- 当前文件夹中文件的字符串的列表
import os
from pathlib import Path
for folderNames,subFolderNames,files in os.walk(Path.cwd()):
print('当前的文件夹是:'+folderNames)
for subFolderName in subFolderNames:
print(folderNames+'的子文件夹是:'+subFolderName)
for files in files:
print(folderNames+'的文件是:'+ files)