Python文件系统操作基础
文件系统操作是Python开发中最常见的任务之一。这个过程包括创建和删除文件、复制、移动、重命名文件,以及创建目录和检查其是否存在。文件操作构成了流程自动化、Web开发、数据分析、配置管理和应用部署的基础。
Python提供了丰富的内置库,用于高效处理文件系统。主要工具包括os、shutil和pathlib模块。这些库几乎涵盖了所有可能的使用场景——从基本操作到高级任务。
在Python中移动文件
使用shutil.move()函数
当需要将文件从一个目录移动到另一个目录时,最简单高效的方法是使用shutil.move()函数。该函数的工作方式类似于Linux和Unix操作系统中的mv命令。
import shutil
shutil.move('source/file.txt', 'destination/file.txt')
shutil.move()函数可以自动处理单个文件和整个目录。移动文件时,可以同时对其进行重命名。需要注意的是,如果目标文件夹中已存在同名文件,它将被覆盖且不会发出警告。
移动时创建目录
移动文件时,经常需要创建新目录。以下方法可以解决这个问题:
import os
import shutil
src = 'data/report.txt'
dst_dir = 'archive'
os.makedirs(dst_dir, exist_ok=True)
shutil.move(src, os.path.join(dst_dir, 'report.txt'))
os.makedirs()函数配合exist_ok=True参数,可以在目录不存在时创建整个目录链,如果目录已存在也不会报错。
移动目录
shutil.move()函数同样支持移动整个目录:
shutil.move('old_folder', 'new_location/old_folder')
复制文件与创建链接
基础文件复制
Python提供了多个功能各异的函数用于复制文件:
import shutil
# 复制文件内容
shutil.copy('file.txt', 'backup/file.txt')
copy()函数仅复制文件内容,不保留元数据。如需完整复制并保留所有文件属性,请使用copy2():
shutil.copy2('file.txt', 'backup/file.txt')
复制目录
要复制整个目录及其所有内容,请使用copytree()函数:
shutil.copytree('project', 'project_backup')
创建硬链接
硬链接是文件系统中现有文件的另一个名称:
import os
os.link('file.txt', 'linked_file.txt')
硬链接意味着一个物理文件可以通过多个不同路径访问。文件内容的更改会反映在所有链接中。可以使用os.stat().st_nlink检查硬链接的数量。
目录管理
创建目录
Python提供了两个主要函数用于创建目录:
import os
# 创建单个目录
os.mkdir('new_folder')
# 创建嵌套目录结构
os.makedirs('parent/child/grandchild', exist_ok=True)
mkdir()函数仅创建单个目录,如果目录已存在则会引发FileExistsError异常。