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。

python 移动文件到另一个文件夹 pythonshutil移动文件_python 移动文件到另一个文件夹

程序运行完后可以看到:

python 移动文件到另一个文件夹 pythonshutil移动文件_重命名_02

图片已经被我复制到文件夹下面去了。实际上如果不声明目标路径的文件名称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'))

运行前:

python 移动文件到另一个文件夹 pythonshutil移动文件_python 移动文件到另一个文件夹_03


运行后:

python 移动文件到另一个文件夹 pythonshutil移动文件_字符串_04

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)