赞
踩
在 Python 中,shutil
和 os
模块提供了丰富的文件操作功能。结合这两个模块,你可以实现文件操作的自动化,包括文件的复制、移动、删除等。下面详细讲解如何使用 shutil
和 os
模块进行文件操作自动化。
首先,你需要导入这两个模块:
import os
import shutil
使用 os.mkdir()
或 os.makedirs()
创建目录。
os.mkdir(path)
: 创建单一目录。如果目录的父目录不存在,则会抛出异常。os.makedirs(path)
: 创建多层目录。如果中间的目录不存在,它们会被一同创建。# 创建单一目录
os.mkdir('new_directory')
# 创建多层目录
os.makedirs('parent_directory/child_directory')
使用 os.rmdir()
删除空目录,使用 shutil.rmtree()
删除非空目录。
os.rmdir(path)
: 删除空目录。shutil.rmtree(path)
: 删除非空目录及其所有内容。# 删除空目录
os.rmdir('empty_directory')
# 删除非空目录
shutil.rmtree('non_empty_directory')
使用 shutil.copy()
或 shutil.copy2()
复制文件。
shutil.copy(src, dst)
: 复制文件到目标路径。目标路径可以是文件或目录。如果目标是目录,则文件会被复制到该目录中。shutil.copy2(src, dst)
: 与 copy()
类似,但会保留文件的元数据(如修改时间)。# 复制文件
shutil.copy('source_file.txt', 'destination_file.txt')
shutil.copy2('source_file.txt', 'destination_directory/')
使用 shutil.move()
移动文件或目录。
# 移动文件
shutil.move('source_file.txt', 'destination_file.txt')
# 移动目录
shutil.move('source_directory/', 'destination_directory/')
使用 os.remove()
删除文件。
os.remove('file_to_delete.txt')
使用 os.rename()
重命名文件或目录。
# 重命名文件
os.rename('old_name.txt', 'new_name.txt')
# 重命名目录
os.rename('old_directory_name', 'new_directory_name')
使用 os.getcwd()
获取当前工作目录,使用 os.chdir()
修改当前工作目录。
# 获取当前工作目录
current_directory = os.getcwd()
print("Current Directory:", current_directory)
# 修改当前工作目录
os.chdir('/new/directory/path')
使用 os.stat()
获取文件或目录的详细信息,如大小、创建时间等。shutil.disk_usage()
用于获取磁盘使用情况。
# 获取文件信息
file_info = os.stat('file.txt')
print("File Size:", file_info.st_size)
# 获取磁盘使用情况
disk_usage = shutil.disk_usage('/')
print("Total Disk Space:", disk_usage.total)
print("Used Disk Space:", disk_usage.used)
print("Free Disk Space:", disk_usage.free)
以下是一个自动化文件备份的示例脚本:
import os import shutil from datetime import datetime def backup_file(src, backup_dir): # 创建备份目录 if not os.path.exists(backup_dir): os.makedirs(backup_dir) # 获取当前时间 timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') # 生成备份文件名 base_name = os.path.basename(src) backup_name = f"{timestamp}_{base_name}" backup_path = os.path.join(backup_dir, backup_name) # 复制文件 shutil.copy2(src, backup_path) print(f"File backed up to: {backup_path}") # 使用示例 src_file = 'important_document.txt' backup_directory = 'backups' backup_file(src_file, backup_directory)
这个脚本会创建一个备份目录(如果尚不存在),并将指定的文件复制到备份目录中,文件名中包含当前时间戳,以避免覆盖旧的备份。
通过 os
和 shutil
模块,你可以实现许多文件和目录的操作,包括创建、删除、移动、复制、重命名等。这些功能可以用于各种自动化任务,从文件备份到目录清理,极大地简化了文件管理工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。